F F F 表示错误, T T T 表示正确。
1. 一个C源程序只能包含一个函数。 (F)
2.C程序的可读性与书写习惯的无关。 (F)
3.‘ ? ’是合法的C语言标识符。 (F)
4.注释说明必须单独一行。 ( F)
5. 注释说明可以占多行。 (T)
6. switch语句中,case后的标号常量可以相同。 (F)
7.switch语句中,case后的标号常量可以float型数据 (F)
8. switch语句中可以有continue语句。 (F)
9. 逻辑非的优先级高于逻辑或。 (T)
10.逻辑非的优先级高于逻辑与。 (T)
11.下面循环语句的循环执行次数是5次。i=-2;while(i<11)i+=3; (T )
12.下面循环语句的循环执行次数是4次。i=-2;while(i<11)i+=3; (F )
13. 下面循环语句的循环执行次数是6次。i=-2;while(i<11)i+=3;( F )
14.c语言中的do…while和for语句的循环体至少执行1次,while循环的循环体可能一次也执行不到。 ( F)
15. 下面循环语句的循环执行次数是4次。i=2;while(i<11)i+=3; ( F)
16.下列二层循环的循环体的执行次数为12。 (T)
for(i=1;i<6;i+=2)
for(j=0;j<4;j++)
17. 下列二层循环的循环体的执行次数为12。 ( F)
for(i=1;i<5;i+=2)
for(j=0;j<4;j++)
18.下列二层循环的循环体的执行次数为9。 ( T)
for(i=1;i<7;i+=2)
for(j=0;j<3;j++)
19. C语言中的continue语句可以终止多重循环。 (F)
20. C语言中的break语句不能退出多重循环,只能退出它所在的那一层循环。 (T)
11.数组定义为int m[6];则m[1] = ’a’;是合法的赋值语句。 (T)
12.数组定义为char m[6];则m[1]=99;是合法的赋值语句。 (T)
13.数组定义为char m[6];则m=“sdf”;是合法的赋值语句。(F)
14.C语言中在定义数组X后,可以使用如下语句如X[ ]={1,2,3};给数组初始化。 (F)
15.C语言中二维数组在定义的同时给数组赋初值时,数组的各维长度都可以省略。(F)
16.C语言中的数值型数组可以一次引用整个数组。 ( F)
17. C语言中的字符型数组可以一次引用整个数组。(T)
18. C语言中的数组名是数组首元素的内存地址,可以重新赋值。 (F)
19.C语言中的字符型数组不可以一次引用整个数组。 (F )
20.C语言中可以用关系运算符来比较字符串的大小。 (F)
21.在C语言中,函数返回值的类型是由return语句中的表达式类型所决定的。 (F)
22.在C语言中,函数返回值的类型是由调用该函数时的主调函数类型所决定。 (F)
23.在C语言中,函数返回值的类型是由调用该函数时系统临时决定。 ( F)
24. 在C语言中,函数返回值的类型是由在定义该函数时所指定的函数类型所决定。 ( T)
25.在C语言中函数返回语句return后的表达式值类型可以与定义的函数类型不一致。 (T)
26.函数定义时若函数类型为void,则表示不需要返回数据。 (T)
27. 函数定义时若函数类型为void,则表示需要返回数据。 (F)
28.函数定义时形参列表可以为空。 (T)
29. 函数定义时可以缺省函数形参名。 (T)
30.函数定义时形参类型可以省略。 (F)
31.若有如下定义:int b[5], *q=b,则q+4表示b[4]的值。 (F)
32.若有如下定义:int b[6], *q=b,则 q+3表示b[3]的地址。 (T)
33.若有如下定义:int m[7], *p=m,则 p+1表示m[1]的地址。 (T)
34.若有如下定义:int b[8], *q=b,则 q+3表示b[4]的地址。 (F)
35.若有如下定义:int b[8], *q=b,则 q+3表示b[3]的值。 (F)
36. c语言中当定义一个结构体变量时,系统为它分配的内存空间是结构体中各成员变量所需内存容量之和。 (T)
37.c语言中结构体中成员类型可以不一致。 (T)
38.c语言中当定义一个结构体变量时,系统为它分配的内存空间是结构体中第一个成员所需的内存容量。 (F)
39.c语言中当定义一个结构体变量时,系统为它分配的内存空间是结构体中占内存容量最大的成员所需的内存容量。 (F)
40.结构体变量在使用时只能访问它的成员,不能整体访问。 (F)
1. 下列程序的功能是求三角形的面积,
a
、
b
、
c
a、b、c
a、b、c为三角形的三边长。计算三角形面积的公式为 :
其中
阅读程序,请口述出程序中的错误行并说明如何改正。
(1)#include <stdio.h>
(2)#include <math.h>
(3)int main()
(4){
(5) float a,b,c,s,area
(6) printf("Please input 3 numbers:\n");
(7) scanf("%f%f%f",a, b, c);
(8) if(a+b>c||b+c>a||a+c>b)
(9) {
(10) s=(a+b+c)/2;
(11) area = sqrt(s(s-a)(s-b)(s-c));
(12) printf("area is %.2f\n",area);
(13) }
(14) else if
(15) printf("error.\n");
(16)}
参考答案:找出3个错误即可得满分。
第5行: float a,b,c,s,area 改为 float a,b,c,s,area ;
第7行:scanf("%f%f%f",a, b, c);改为scanf("%f%f%f",&a, &b, &c);
第8行: if( a+b>c || b+c>a || a+c>b ) 改为if( a+b>c && b+c>a && a+c>b )
第11行: area = sqrt(s(s-a)(s-b)(s-c)); 改为area = sqrt(s*(s-a)*(s-b)*(s-c));
第14行: else if 改为 else
2. 以下程序的功能是:统计字符串中大写英文字母的个数。阅读程序,请口述出程序中的错误行并说明如何改正。
(1)#include <stdio.h>
(2)#include <string.h>
(3)int main();
(4){ char str1[128];
(5) int i,len,sum=1;
(6) gets(&str1);
(7) len=strlen(str1);
(8) for(i=0;i<len;i++)
(9) {
(10) if(str1[i]>='a'||str1[i]<='z')
(11) sum++;
(12) }
(13) printf(%d\n,&sum);
(14)}
参考答案:找出3个错误即可得满分。
第3行:main();改为main()
第5行:sum=1改为sum=0
第6行: gets(&str1); 改为 gets(str1);
第10行:if(str1[i]>='a'||str1[i]<='z') 改为:if(str1[i]>='A'&&str1[i]<='Z')
第11行: printf(%d\n,&sum);改为printf("%d\n",sum);
3. 以下程序的功能是:输入一个大于3的整数n,判定它是否为素数。阅读程序,请口述出程序中的错误行并说明如何改正。
1)#include<stdio.h>;
2)int main()
3){
4) int n,i
5) scanf(“%d”,n);
6) for(i=2;i<=n-1;i++)
7) if(n/i==0) break;
8) if( i<n )
9) printf(“%d is not a prime number.\n”,n);
10) else if
11) printf(“%d is a prime number.\n”,n);
12) }
参考答案:找出3个错误即可得满分。
第1行:去掉行末的分号
第4行:int n,i改为:int n,i;
第5行:scanf(“%d”,&n);
第7行:if(n/i==0)改为if(n%i==0)
第10行:else if改为else
4. 以下程序的功能是:统计若干正数的最大值和最小值,当输入负数时结束。阅读程序,请口述出程序中的错误行并说明如何改正。
1)#include<stdio.h>;
2)int main
3){
4) int x,max,min;
5) scanf(“%d”,&x);
6) max=x;min=x:
7) while( x>0 );
8) {
9) if(x<max) max=x;
10) if(x<min) min=x;
11) scanf(“%d”,&x);
12) }
13) printf(max=%d,min=%d,max,min);
14) }
参考答案:找出3个错误即可得满分。
第1行:去掉行末的分号
第2行:main改为main()
第5行:去掉行末的分号
第9行:if(x<max)改为if(x>max)
第13行printf(max=%f,min=%f,max,min);改为printf(“max=%f,min=%f”,max,min);
5.以下程序的功能是:统计字符串中小写英文字母的个数。阅读程序,请口述出程序中的错误行并说明如何改正。
(1)#include <stdio.h>
(2)#include <string.h>
(3)int main();
(4){ char str1[128];
(5) int i,len,sum=1;
(6) gets(&str1);
(7) len=strlen(str1);
(8) for(i=0;i<len;i++)
(9) {
(10) if(str1[i]>='A'||str1[i]<='Z')
(11) sum++;
(12) }
(13) printf(%d\n,&sum);
(14) }
参考答案:找出3个错误即可得满分。
第3行:main();改为main()
第5行:sum=1改为sum=0
第6行: gets(&str1); 改为 gets(str1);
第10行:if(str1[i]>='A'||str1[i]<='Z') 改为:if(str1[i]>='a'&&str1[i]<='z')
第11行: printf(%d\n,&sum);改为printf("%d\n",sum);