77范文网 - 专业文章范例文档资料分享平台

c语言测试题 3

来源:网络收集 时间:2020-06-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

一、单项选择题(每小题 2 分,共 30 分)

1. 1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。 A、?{? 和?}? B、?[?和?]? C、“/*”和”*/” D、“*/”和”/*” 2. 2. 下列运算符中,优先级最低的是_____。

A、* B、!= C、+ D、= 3. 3. 若变量已正确定义,表达式 (j=3, j++) 的值是_____ 。

A、3 B、 4 C、5 D、0

4. 4. 已知字符 ?a? 的ASCII码为 97 ,执行下列语句的输出是_____。 printf (\

A、98, b B、语句不合法 C、98, 99 D、 98, c 5. 5. 表达式strcmp(“box”, “boss”) 的值是一个_______。

A、 正数 B、 负数 C、 0 D、 不确定的数 6. 6. 数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。 A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3] 7. 7. 要调用数学函数时,在#include命令行中应包含_____。

A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h” 8. 8. 判断i和j至少有一个值为非0的表达式是_____。

A、 i!=0 && j!=0 B、i*j!=0 [yh1] C、!(i==0 || j==0) D、i&&j 9. 9. 若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。 A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c); C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);

10. 10. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。 A、p++ B、x++ C、*(p++) D、&x++

11. 11. 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。 A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1; 12. 12. 下列程序段的输出是_____。 int c[]={1, 3, 5}; int *k=c+1;

printf(\

A、 3 B、 5 C、 4 D、6 13. 13. 不正确的赋值或赋初值的方式是______。 A、char str[]=\; B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};

C、char str[10];str=\;

D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ?\\0?};

14. 14. 对于以下结构定义,++p->str中的++加在_____。

struct { char *str; int len;

} *p;

A、指针str上 B、指针p上 C、str指的内容上 D、以上均不是 15. 15. 对于如下说明,语法和语义都正确的赋值是_____。

int c, *s, a[]={1, 3, 5};

A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;

二、填空题(每小题 2 分,共 20 分)

1. 1. 写出下列程序段的输出结果。

float x1, x2; x1=3/2; x2=x1/2;

printf(\

2. 2. 表达式 (7<<1>>2^2 ) 的值是_______。 3. 3. 写出下列程序段的输出结果。 #define A 10

#define B (A

4. 4. 写出判断字符变量c是英文字母的表达式 。 5. 5. 写出下列程序段的输出结果。 int k, x;

for (k=0, x=0; k<=9&&x!=10; k++) x+=2;

printf (\

6. 6. 写出下列程序段的输出结果。

printf(“%d, %d”, NULL, EOF);

7. 7. 对于以下递归函数f,调用 f (3) 的返回值是_____。 f (int n)

{ return ((n>0) ? 2*f(n-1)+f(n-2) : -1); } 8. 8. 写出下列程序段的输出结果。 char str[]=\

printf(\

9. 9. 输入12345#后,写出下列程序的输出结果。 void main() { char c; for(c=getchar(); getchar()!=?#?; c=getchar()) putchar(c); }

10. 10. 执行程序find –nx ould text.txt时,*++argv[1]的值是_______。

三、程序阅读题(每题5分,共20分)

1. 1. 若输入 3 1 2 3 <回车> , 则以下程序的输出结果是_______。 #include \ void main() { int i, j, n, a[10]; scanf(\ for (i=0; i

printf(\

}

2. 2. 若输入89 76 24 25 9 8 11 16 35 4 <回车> , 则以下程序的输出结果是_______。 #include \ #define N 10

main() {

int x[N], y1[N], y2[N]; int i, j, n1, n2, t, p; n1=n2=0; for(i=0;i

if(x[i] % 2==0) y1[n1++]=x[i]; else y2[n2++]=x[i]; }

for(i=1; i

if(y1[j]>y1[j+1]){ }

t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;

for(i=0; i

for(j=i+1; j

for(i=0; i

3. 3. 以下程序的输出结果是_______。 #include int z;

void p(int *x, int y)

{ ++*x; y--; z=*x+y+z;

printf(\

}

void main()

{ int x=1, y=5, z=9; p(&x, y);

printf(\ }

4. 4. 若输入 -6+15*3/5=<回车> , 则以下程序的输出结果是_______。 #include void main() {

int m=0, sum=0;

t=y2[i]; y2[i]=y2[p]; y2[p]=t;

}

char c, oldc='+';

do {

c=getchar(); if(c<='9'&&c>='0') m=10*m+c - '0'; else {

if(oldc=='+') sum += m; else sum -= m; m=0; oldc=c;

printf(\ }

} while(c!='='); }

四、程序填空题(每空 2 分,共 20 分)

1. 1. 下列程序的功能是创建单向链表。 #include #include struct link { char name[10]; int mark; struct link * next; };

void insert(char *, int); struct link * head = NULL; main() { char name[10]; int mark; struct link * t; while ( 1 ) { scanf(\ name, &mark); if ( strcmp(name, \ break; ______(1)_______; } for (t=head; ______(2)_______) printf(\ t->name, t->mark); } void insert(char * name, int mark) { struct link * p; p = ______(3)_______ ; strcpy(p->name, name); p->mark = mark; ______(4)_______; if ( head != NULL ) ______(5)_______; head = p; }

2. 2. prog.c是带命令行参数的程序。运行prog filename时,将文本文件filename中的

内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。 # include # include void main(int argc, char * argv[])

{ FILE *fp; char * filename, ch; int tag=0; if (argc <2 || argc>3) { printf(“Argument error\\n”); return; } if (argc == 3) { if (strcmp(argv[1], “-u”) == 0) tag=1; else if (strcmp(argv[1], “-d”) == 0) tag=2; else {printf(“Option error\\n”); return;} ______(6)_______; }

else filename = argv[1]; if (______(7)_______) { printf(“Cannot open file\\n”); return; } while (______(8)_______ ) { ch = fgetc(fp); if ( tag == 0 ) putchar(ch); else if ( tag == 1 ) ______(9)_______; else if ( ______(10)_______) putchar(ch); } fclose(fp); }

五、编程题 ( 共 10 分,混合班学生做第2题,其他学生做第1题)

1. 1. [程序说明] (10分)

输入m和n(m≥n≥0)后,计算下列表达式的值并输出。 m! n!*(m-n)! 要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。

2. 2. [程序说明] (10分)

编写函数strcmp(char * s1, char * s2)。若s1和s2均是数字串(包括+/-号),则按照十进制整数大小进行比较;否则按照Ascii序进行比较。s1大于/等于/小于s2时,分别输出1/0/-1。可以直接调用atoi函数。

2000~2001学年《程序设计基础C》参考答案

一、单项选择题(每小题 2 分,共 30 分) 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 选择 C D A D A B C B D B A B C A C 二、填空题(每小题 2 分,共 20 分) 1 3 5

1, 0.5 -3 5, 10

2 4 6

1

c>=?a?&&c<=?z?|| c>=?A?&&c<=?Z? 0, -1

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言测试题 3在线全文阅读。

c语言测试题 3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1110795.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: