c语言试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言试卷
一、选择题(40分,每题1分)
1、C语言规定:在一个源程序中,main函数的位置(C)。
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后
2、组成C语言程序的是(A)。
A、函数
B、子程序
C、过程
D、主程序和子程序
3、C语言中,用户能使用的合法标识符是(C)。
A、a_b!
B、–xyz
C、fa2
D、5i
4、若定义int i; 则以下循环语句的循环执行次数是(B)。
for(i=2; i==0;)
printf("%d", i--);
A、无限次
B、0次
C、1次
D、2次
5、以下关于宏替换的叙述不正确的是(D)。
A、宏替换只是字符替换
B、宏名无类型
C、宏替换不占用运行时间
D、宏替换不占用编译时间
6、在循环语句的循环体中,continue语句的作用是(C)。
A、立即终止整个循环
B、继续执行continue语句之后的循环体
C、结束本次循环
D、结束本次循环并跳出循环
7、以下对C语言中字符数组的错误描述是(C)。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整个输入、输出
C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值
D、字符数组中字符串的结束标志是‘\0’
8、C语言规定,函数返回值的类型由(D)所决定。
A、return语句中的表达式类型
B、调用该函数时的主调函数类型
C、调用该函数时的形参类型
D、在定义该函数时所指定的函数类型
9、以下关于do-while循环的不正确描述是(B)。
A、do-while的循环体至少执行一次
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D、do-while的循环体可以是复合语句
10、若a=-14,b=3,则条件表达式 a
A、-14
B、-13
C、3
D、4
11、已知:int n,i=1,j=2;执行语句n=i A、1,2 B、1,3 C、2,2 D、2,3 12、为了判断两个字符串s1和s2相等,应当使用(D)。 A、if (s1==s2) B、if(s1=s2) C、if (strcmp(s1,s2)) D、if (strcmp(s1,s2)==0) 13、若有说明:int a[10]; 则对a数组元素的正确引用是(C)。 A、a[10] B、a[3.5] C、a[5-3] D、a[-1] 14、以下正确的函数形式是(D)。 A、double fun(int x,int y) { z=x+y;return z;} B、fun(int x,y) { int z; return z;} C、fun(x,y) { int x,y; double z; z=x+y; return z;} D、double fun( int x,int y) {double z; z=x+y; return z; } 15、对于条件表达式:(M)?(a++):(a--),其中的表达式等价于(C)。 A、M == 0 B、M == 1 C、M != 0 D、M != 1 16、若有以下定义和语句: char *s1 = “12345”, *s2 = “1234”; printf(“%d\n”, strlen(strcpy(s1, s2))); 则输出结果是:(A)。 A、4 B、5 C、9 D、10 17、以下哪一项是不正确的字符串赋值或赋初值的方式:(C)。 A、char *str; str = “string”; B、char str[7] = {‘s’, 't', 'r', 'i', 'n', 'g'}; C、char str1[10]; str1 = “string”; D、char str1[] = “string”, str2[] = “12345678”; 18、在以下一组运算符中,优先级最高的运算符是(C)。 A、<= B、= C、% D、&& 19、设有定义:struct sk{int a; float b;}data, *p; 若有p = &data; 则对data中的a域的正确引用是(B)。 A、(*p).data.a B、(*p).a C、p->data.a D、p.data.a 20、执行下列语句后,sum变量的值是(B)。 int sum = 0, i; for(i = 0; i < 10; i++, sum += i); A、45 B、55 C、0 D、编译错误 21、以下关于typedef的叙述中错误的是(A)。 A、用typedef可以增加新的类型 B、用typedef可以定义各种类型名,但不能用来定义变量 C、用typedef只是将已有的类型用新的标识符来代替 D、使用typedef有利于程序的通用和移植 22、表达式1&3&5&7的值为(A)。 A、1 B、3 C、5 D、7 23、语句printf(“s\\t”);的输出结果为(B)。 A、s\\t B、s\t C、s\ D、s 24、语句:strcat(strcpy(str1, str2), str3)的功能是(C)。 A、将字符串str1复制到字符串str2中,再连接到字符串str3之后 B、将字符串str1连接到字符串str2之后,再复制到字符串str3中 C、将字符串str2复制到字符串str1中,再将字符串str3连接到字符串str1之后 D、将字符串str2连接到字符串str1之后,再将字符串str1复制到字符串str3中 25、执行下列语句后,a的值为(B)。 int a; #define M(x, y) (x*y) a = M(1+2, 3); A、9 B、7 C、5 D、以上均不是 26、能正确表示“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是(B)。 A、(x >= 1) && (x <= 10) && (x >= 200) && (x <= 210) B、(x >= 1) && (x <= 10) || (x >= 200) && (x <= 210) C、(x >= 1) || (x <= 10) || (x >= 200) || (x <= 210)