1、将C程序编译成目标文件,其扩展名为EXE。(错)
2、C语言中,程序中用/*…*/括起来的内容是程序的注释。(对)
3、C程序中以冒号作为语句的结束符。(错)
4、C程序的书写格式比较自由,一行内可写一个语句,也可以写多个语句。(对)
5、C语言中,强制类型转换后,原变量的值和数据类型不变。(对)
6、C语言中,当把一个实型数据赋给整型变量时系统将自动截掉小数部分。(对)
7、C语言中,在进行混合运算时,数据类型由高级向低级转换。(错)
8、C语言中,putchar函数的功能是把一字节代码输出到标准输出设备。(对)
9、C语言中,字符数据用格式说明“%c”来输出,字符串数据用格式说明
“%s”来输出。(对)
10、C语言中,输入数据的个数和类型必须与scanf函数中的说明符一一对应。(对)
11、字符数据与整型数据可互相赋值。(对)
12、C语言中字符串可以分行书写。(错)
13、二元运算符均可以和赋值运算符构成复合的赋值运算符。(对)
14、使用(int)a;将float型变量a强制转换成int型,以后a的数据类
型为float型。(错)
15、一个C语言程序是由_________组成。(C )
A.主程序
B.子程序
C.函数
D.过程
16、以下叙述正确的是_________。(D)
A.在C程序中,main函数必须位于程序的最前面。
B.C程序的每一行中只能写一条语句。
C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
D.C语言本身没有输入输出语句。
17、C语言中,最简单的数据类型是_________。(B)
A.整型、实型、逻辑型。
B. 整型、实型、字符型。
C.整型、字符型、逻辑型。
D. 整型、实型、逻辑型、字符型。
18、_________是C语言提供的合法的数据类型关键字。(B)
A.Float
B.signed
C. integer
D. Char
19、不正确的字符串常量是_________。(A)
A. 'abc'
B."12'12"
C."0"
D. " "
20、若有int k=7,x=12;,则能使值为3的表达式是_________。(D)
A.x%=(k%=5)
B.x%=(k-k%5)
C.x%=k-k%5
D.(x%=k)-(k%=5)
21、为了计算s=10!,则定义变量s时应该使用的数据类型是_________。(C)
A.int
B.unsigned
C.long
D.以上三种类型均可
22、对于int 型变量k1,k2,k3,k4,若用以下语句: scanf("%d%d",&k1,&k2); scanf("%d,%d",&k3,&k4);将10赋给k1,k3,将20赋给k2,k4,则应按____格式输入数据。
A.1020
B.10 20
C.10,20
D.10 20
23、函数putchar()可以向终端输出一个_______。(D)
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符型变量值
24、有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是_______。 ( D )
A.1112
B.12,11
C.11 12
D. 11,
25、下列关于C语言用户标识符的叙述中正确的是_______。 ( B )
A.用户标识符中可以出现下划线和中划线(减号)。
B.用户标识符中不可以出现中划线,但可以出现下划线。
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头。
26、有以下程序段:
int m=0,n=0;
char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
27、已知i、j、k为int型变量,若从键盘输入:1,2,3
A.scanf("%2d %2d %2d",&i,&j,&k);
B.scanf("%d %d %d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
28、一个C语言的语句至少应包含一个_______。 ?? ;
29、在一个C源程序中,注释部分两侧的分界符分别为__________。 \* *\
30、以下程序的运行结果为__________。
#include
main()
{ printf("*%f,%4.3f*\n",3.14,3.1415);} *3.140000,3.142*
31、以下程序的运行结果为________________。
#include
main()
{char c='x'; printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);
//a的ASCII码为61H }
c:dex=120,oct=170,hex=78,ASCII=x
32、以下程序的运行结果为____________。 9.300000
#include
#include"math.h"
main()
{ int a=1,b=4,c=2;
float x=5.5,y=9.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z); }
33、已知字符A的ASCII码值为65,以下语句的输出结果是_________。
char ch='B';
printf("%c%d\n",ch,ch); B66
34、两个变量交换数据时常使用一个中间变量。(对)
35、C语言规定,else总是与它上面最近的if配对。()
36、所有关系运算符的运算优先级相同。(错)
37、执行a=0;if(0);a=3;后a的值为3。(对)
38、if(表达式)语句1 else 语句2 结构中,如表达式为a>10,则else的条件隐含为a<10。
(错)
39、switch…case结构中条件表达式和常量表达式值可以为float类型。(错)
40、可以用swicth结构实现的程序都可以使用if语句来实现。(对)
41、若x、i、j都是int型变量,则执行下面表达式i=3,j=i+6,x-=j+=i后x的值为_________。
A. 2
B. 15
C. 10
D. 3 ( B )
42、执行下面语句后i,j,x的值为_________ int i,j,x; i++-++j,x=j++-++i; ( C )
A. 0,0,0
B. 1,1,2
C.2,2,-1
D.1,2,3
43、判断char型变量ch是否为大写字母的正确表达式是_______。(C)
A. A'<=ch<='Z'
B. (ch>='A')&(ch<='Z')
C. ch>='A')&&(ch<='Z')
D. ('A'<=ch)AND('Z'>=ch)
44、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是_______。
A. x'&&'y'
B.x<=y
C.x||y+z&&y-z
D.!((x 45、在C语言中,要求运算数必须是整型的运算符是_______。(D) A. / B. ++ C. != D. % 46、下面程序段的输出是_______。(C) int a=-1,b=4,k; k=(a++<=0)&&(!b--<=0); printf("%d,%d,%d",k,a,b); A.0,0,3 B. 0,1,2 C. 1,0,3 D. 1,1,2 47、已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是_______。(B) if(x>y) z=x; x=y; y=z; printf("%d,%d,%d",x,y,z); A. 10,20,30 B.20,30,30 C.20,30,10 D.20,30,20 48、当a=1,b=3,c=5,d=4,x=0时,执行完下面一段程序后x的值是_______。 ( A ) if(a > b) if(c < d) x=1; else if(a > c) if(b < d) x=2; else x=3; else x=6; else x=7; A. 7 B. 2 C. 3 D. 6 49、下面程序的输出是_______。(B) main() { int x=100,a=1,b=20,v1=5,v2=0; if(a < b) if(b!=15) if(!v1) x=1; else if(v2) x=10;x=-1; printf("%d",x); } A.100 B.-1 C.1 D.10 50、以下程序的输出是_______。(B) main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("\na=%d,b=%d",a,b); } A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2 51、有以下程序: main() { int a=1,b=2,m=0,n=0,k; k=(n = b > a)||(m = a < b); printf("\n%d,%d\n",k,m); } 程序运行后的输出结果是_______。(C) A.0,0 B.0,1 C.1,0 D.1,1 52、有以下程序: main() { int x=13,y=15; printf("%d\n",x%=(y/=2)); } 执行后输出结果是_______。(C) A.3 B.2 C.1 D.0 53、以下程序的运行结果是_____________________。 1,1 #include main() { int z,y,x; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf("%d,%d",x,y); } 54、以下程序执行后的输出结果是__________________。 yes main() { int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n"); } 55、若运行程序时输入数据为:60 main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); } 56、以下程序执行后的输出结果是__________________。 0 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 57、C语言中,do-while语句构成的循环只能用break语句退出。(错) 58、从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。 59、由i=-1;while(i<10)i+=2;i++; 可知此while循环的循环体执行次数为6次。 60、循环for(;;)的循环条件始终为真。(对) 61、do…while语句的循环体至少执行1次,while和for循环的循环体可能一次也执行不 到。(对) 62、break;语句执行时退出本层循环,continue;语句结束本次循环。(对) 63、for循环、while循环和do while循环结构之间可以相互转化。(对) 64、执行下面语句后x的值为_________ int i=1,j=2,x=3; x=(i 65、执行下面语句后x的值为_________ int i=5,x; if(i>0) x=1; else if(0 else if(5<=i<8) x=3; else if(i>=8 x=4; else x=5; 66、执行下面语句后x的值为_________ int i=4,x; switch(i<=0?1:i<=3?2:i<=5?3:i<=7?4:5) { case 1: x=5; break; case 2: x=4; break; case 3: x=3; break; case 4: x=2; break; default: x=1; } 67、执行下面程序后输出结果为_________ #include "stdio.h" void main() { int i=4,x=0; for(;i<6;i++) x+=i; printf("%d",x); } 68、执行下面程序后输出结果为_________ void main() { int i=0,x=0; do x-=i++; while(++i<5); printf("%d",x); } 69、执行下面程序后输出结果为_________ void main() { int i=0; while(i++^7); printf("%d",i); } 70、'执行下面程序后输出结果为_________ ( C ) void main() { char a[]="ABCD";int i=0; while(a[++i]!='\0') printf("%c",a[i]); } A."ABCD" B. C.BCD D.ABC 71、下列程序的输出结果是_______。 ( B ) main() { int k=0,m=0,i,j; for (i=0;i < 2;i++) { for(j=0;j < 3;j++) k++; k-=j; } m=i+j; printf("k=%d,m=%d",k,m); } A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5 72、下列程序的输出结果是_______。(B ) main() { int x=9; for(;x>0;x--) { if(x%3==0) { printf("%d",--x); continue; } } } A.741 B.852 C.963 D.875421 73、循环语句for (a=0,b=0;a<3&&b!=3;a++);_______。(C) A.是无限循环 B.循环次数不定 C.循环3次 D.循环4次 74、下面程序的运行结果是_____ 。 ( D ) main() { int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while(b-->=0) k++; } printf("%d,%d",k,b); } A. 3,1 B.8,1 C.3,0 D.8,-2 75、以下程序执行后的输出结果是_____ 。 ( D ) main() { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s); } A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中奇数之和 D.自然数1~10中偶数之和 76、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: (A) main() { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score);sum+=score; } ave=sum/4.0; printf(" A.sum=0.0; B.sum+=score; C.ave=sum/4.0; D.printf(NO%d:%f\n",n,ave); 77、以下程序执行后的输出结果是_____。(B) #include main() { int i=0,a=0; while(i < 20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a); } A. 21 B. 32 C. 33 D. 11 78、'以下程序若运行时输入2.0,则输出结果为_______________。 0.500000 main() { float a,b; scanf("%f",&a); if(a<0.0) b=0.0; else if((a<0.5)&&(a!=2.0)) b=1.0/(a+2.0); else if(a<10.0) b=1.0/a; else b=10.0; printf("%f\n",b); } 79、以下程序执行后的输出结果是______ 。 132 main() { int i,m=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10) { case 0: m++; n++; break; case 10: n++; break; default: k++; n++; } printf("%d%d%d\n",m,n,k); } 80、以下程序执行后的输出结果是______________ 。 17 main() { int x=15; while(x>10&&x<50) { x++; if(x/3){x++;break;} else continue; } printf("%d\n",x); } 81、下列程序的运行结果是________。 ? s=3 main() { int s=0,k; for(k=7;k>4;k--) { switch(k) { case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+= 82、下面程序的功能是将从键盘输入的两个数由小到大排序输出。当输入两个相等 数时结束循环,请填空完成程序。 a!=b main() { inta,b,t; scanf("%d,%d",&a,&b); while(______________) {if(a>b){t=a;a=b;b=t;} printf("%d, %d\n",a,b); scanf("%d,%d",&a,&b); } } 83、C语言中,数组元素的下标是从1开始的,下标不能越界。(错) 84、C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。(对) 85、C语言中,用格式符“%s”输入字符数组时,数组名前不能加&。(对) 86、C语言中,gets()函数的返回值是用于存放输入字符串的字符数组首地址。(错) 87、二维及多维数组在定义的同时给数组赋初值时,可以省略数组的各维长度。(错) 88、使用字符串处理函数strcmp需要包含头文件string.h。(对) 89、设有int a;char abc[5]="abcd";则a=strlen(“ABC”);执行后a的值为5。(错) 90、'以下程序执行后输出结果是_______。(B) main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf("%d\n",s); } A.11 B.19 C.13 D.20 91、以下程序的执行后输出结果是_______。 ( C ) main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); }} A.456 B.258 C.369 D.789 92、以下对一维整型数组a的正确说明是_______。 ( D ) A.int a(10); B.int n=10,a[n]; C.int n;scanf("%d",&n);int a[n]; D.#define SIZE 10 int a[SIZE]; 93、有 int a[10]={6,7,8,9,10}; 对以下说明语句的正确理解是_______。(B) A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10] D.因为数组长度与初值的个数 94、下面程序段的运行结果是_______。(D) char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]); A.一个空格 B.\0 C.e D.f 95、有下面程序段, 则_______。(D) char a[3],b[]="China"; a=b; printf("%s",a); A.运行后将输出China B.运行后将输出Ch C.运行后将输出Chi D.编译出错 96、下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。(A) char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0' && y[i]!='\0') { if(x[i]==y[i]) printf("%c", __________); else i++; } A.x[i++] B.y[++i] C.x[i] D.y[i] 97、下面程序_______。 ( C ) main() /*第1行*/ { int a[3]={0},i; /*第2行*/ (i=0;i<3;i++)scanf("%d",&a[i]); /*第3行*/ for(i=0;i<4;i++)a[0]=a[0]+a[i]; /*第4行*/ ("%d\n",a[0]); } A.没有错误 B.第3行有错 C.第4行有错 D.第5行有错 98、以下程序的执行后输出结果是_______。(C) main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); }} A.456 B.258 C.369 D.789 99、以下程序是求矩阵a和b的和,结果存入矩阵c中并按矩阵形式输出。请填空。main() a[i][j]+b[i][j] { int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}}; int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}}; int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) c[i][j]=______________; for(i=0;i<3;I 100、下面程序的运行结果是_______。 aabcd #include "stdio.h" main() { int i=5; char c[6]="abcd"; do { c[i]=c[i-1]; } while(--i>0); puts(c); } 101、C语言中,实参可以是常量、变量或表达式。(对)102、C语言中,实参的个数、类型和位置必须与形参的定义一一对应。(对)103、C语言中,编译预处理后所有的符号常量名和宏名都用相应的字符串替换。(对)104、不论使用何种参数传递方式,形参变量值的改变都不影响实参变量的值。(错)105、函数可以嵌套定义,也可以嵌套调用。(错)106、宏展开不作语法检查,展开时不替换关键字和常量。(对)107、下面能正确进行字符串赋值操作的是_______。(C) A.char s[5]={"ABCDE"}; B.char s[5]={'A','B','C','D','E'}; B.char *s; s="ABCDE"; D.char*s;scnaf("%s",&s); 108、以下正确的函数定义形式是_______。(A) A.double fun(int x,int y) B.double fun(int x;int y) C.double fun(int x,y) D.doubl fun(intx,y;) 109、以下程序的正确运行结果是_______。(D)main() { int a=2,i; for(i=0;i<3;i++) printf("%3d",f(a)); } f(int a) { int b=0;static int c=3; b++; c++; return(a+b+c); } A. 7 7 7 B.7 10 13 C.7 9 11 D.7 8 9 110、以下有关宏替换的叙述不正确的是_______。(D ) A.宏替换不占用运行时间 B.宏名无类型 C.宏替换只是字符替换 D.宏名必须用大写字母表示 111、#define能作简单的替换,用宏替换计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是_______。 ( A ) A. #define f(x) 4*x*x+3*x+2 B.#define f 4*x*x+3*x+2 C.#define f(a) (4*a*a+3*a+2) D.#define(4*a*a+3*a+2)f(a) 112、以下程序的运行结果是_______。 i=7;j=6;x=7;i=2;j=7;x=5 main() { int i=2,x=5,j=7; fun(j,6); printf("i=%d;j=%d;x=%d\n",i,j,x); } fun(int i,int j) { int x=7; printf("i=%d;j=%d;x=%d\n",i,j,x); } 113、以下程序的运行结果是_______。 max is 2 main() { int a=1,b=2,c; c=max(a,b); printf("max is %d\n",c); } max(int x,int y) { int z; z=(x>y)?x:y; return(z); } 114、以下程序的运行结果是_______。 5 10 9 f(int a[]) { int i=0; while(a[i]<=10) { printf("%d ",a[i]); i++; } } main() { int a[]={1,5,10,9,11,7}; f(a+1); } 115、下面程序的运行结果是: _______。 6 int f(int a[],int n) { if(n>1)return a[0]+f(&a[1],n-1); else return a[0]; } main() { int aa[3]={1,2,3},s; s=f(&aa[0],3); printf("%d\n",s); } 116、编写一个查表程序,即若干个数据存放在一个表(数组)中,程序运行时任意输入一个数,找出并输出表中大于该数的所有数。 #include "stdio.h" void main() { int A[]={1,2,3,4,2,3,5,6,7,4,6,8},T; scanf("%d",&T); for(int i=0;i<12;i++)