nbhkdz.com冰点文库

c语言经典选择填空题1

时间:2012-08-16


选择题(30 分) (第一部分分 10 分,第二部分 12 分,第三部分 8 分) 第一部分:简单类题目(50 个题目,从中选择 10,每题 1 分) 1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C) A.4B.16 C.32D.522 。

2.以下程序的输出结果(B) main( ) { if

int x1=3, x2=0, x3=0;

(x1=x2+x3)

printf("* * * *"); else printf("# # # #"); } A.输出:* * * * B.输出:# # # # C.存在语法错误D.无输出结果 3.下面四个选项中,均是合法转义字符的选项是(A)。 A.'\'' '\\' '\n' B.'\' '\017' '\"' D.'\\0' '\101' 'xlf'

C.'\018' '\f'

'xab'

4.若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是(D) 。 A、4B、3C、2D、1 5.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是 (D)。 A.i&&jB.i<=j C.i||j+k&&j-kD.!((i<j)&&!k||1) 6. 若希望当num的值为奇数时, 表达式的值为 “真” num的值为偶数时, , 表达式的值为 “假” 。 则以下不能满足要求的表达式是(C) 。 A.num%2= =1 B. !(num%2= =0) 7.有以下程序 main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf(“%d\n”,x); C.!(num%2)D.num%2

} 程序运行后的输出结果是 (D) A.3 B.5 C.-1 D.-2 8.若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是 A.a=9+b+c=a+9B.a=9+b;c=a+9; C.a=(9+b,b++)D.a=9+b++=a+7 9.若有以下定义,若int m=7,n=12,则能得到值为3的表达式是 ( D ) A.n%=(m%=5) B.n%=(m-m%5) C.n%=m-m%5 D.(n%=m)-(m%=5) 。 。 (C) 。 。

10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是 ( C ) A.int x=y=z=5;B.int x,y,z=5; C.int x=5,y=5,z=5; D.x=5,y=5,z=5;

11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 A.abs(x-y)<10 B.x-y>-10&&x-y<10 C.(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<100 12.设 int a=12,则执行完语句 a+=a-=a*a后,a的值是( D )。 A 552 B264 C 144 D -264 13以下叙述不正确的是 ( D ) A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 14下关于运算符优先顺序的描述中正确的是 ( C )。

( C ) 。

A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 15下列程序的输出结果是 ( C ) main( ) { int a=7,b=5; printf("%d\n",b=b/a);

} A 5 B 1 C 0 D不确定值 16printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大 于5,则输出按方式(B) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 17.以下叙述正确的是 ( C ) A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 18.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B ) A. 7 B. 8 C. 6 D. 2 19.下面不正确的字符串常量是( A ) ··················· A. 'abc' B. "1212" C. "0" D. "" 20.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是( A ) A. a+=a-=(b= 4)*(a=3) B. a=a*3=2 C. x%(-3) D. y=f1oat(i) 21.若有说明语句:char c='\72'则变量c描述正确的是 ( A ) A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 说明不合法,c的值不确定 22.已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若输入12345 78(回车), 则x 的值为( B ) A. 12345 B. 123 C. 45 D. 345 23.能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( C ) 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) D. (x>=1) || (x<=10) && (x>=200) || (x<=210) 24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是 (A) A. 0 B. 1 C. 2 D. 3 25.在 if(x)语句中的 x 与下面条件表达式等价的是:(A) A)x!=0 B) x==1 C) x!=1 D) x==0 26、已知字母 A 的 ASCII 码为(65)10,变量 ch1 为字符型,则执行语句 ch1='A'+'6'-'3';后,ch1 中的值为(A) A、D B、E C、一个不确定的值 D、C

27. 已知 x=3、y=2,则表达式 x*=y+8 的值为 ( C ) A)3 B)2 C)30 D)10 28. 设 x 为 int 型变量,则执行以下语句后,x 的值为 ( B ) 。 x=10;x+=x- =x-x; A)10 B)20 C)40 D)30 29 若有以下类型说明语句:char a; int b; float c; double d; 则表达式 a*b+d-c 的结果类型为 ( D ) A.float B.char C.int D.double 30 若二维数组 a 有 m 列,则在 a[i][j]前的元素个数为 ( B ) A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 31对for(表达式1;;表达式3)可理解为 ( B ) A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 32 以下描述不正确的是 ( C ) 。 A.使用 while 和 do-while 循环时,循环变量初始化的操作应在循环体语句之前完成 B.while 循环是先判断表达式,后执行循环语句 C.do-while 和 for 循环均是先执行循环语句,后判断表达式 D.for、while 和 do-while 循环中的循环体均可以由空语句构成 33.下列程序段的运行结果是 ( C )。 int n=0; while(n++<=3); printf(“%d”,n); A 3 B 4 C 5 34.设 int a=3,b=4,c=5;,下列表达式的值不为 1 的是 ( A ) 。 A)a+b>c&&b==c B)a||b+c&&b-c C)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/2 35. 有以下程序: #include <stdio.h> void main ( ) { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf ("%d,%d\n",k,m); } 程序运行后的输出结果是 ( C ) 。 A)0,0 B)0,1 C)1,0 D)1,1 36、以下能正确进行字符串赋值操作的是 ( D ) A、char s[5]={"ABCDE"}; B、char s[5]={'A', 'B', 'C', 'D', 'E'}; C、char *s; *s="ABCDE";

D 有语法错误

D、char *s="ABCDE"; 37 下面程序的运行结果是 (B) #include <stdio.h> #include <string.h> main() { char *s1="AbDeG"; char *s2="AbdEg"; s1+=2;s2+=2; printf("%d",strcmp(s1,s2)); } A)正数 B)负数 C)零 D)不确定的值

38若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为(A) A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j

39 以下能对二维数组y进行初始化的语句是(B) A、static int y[2][ ]={{1,0,1}, {5,2,3}}; B、static int y[ ][3]={{1,2,3}, {4,5,6}}; C、static int y[2][4]={{1,2,3}, {4,5} , {6}}; D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}}; 40 以下printf语句的输出结果是(B) printf("%d\n", strlen("school"); A、7 B、6 C、存在语法错误 D、不定值

41 不能把字符串:Hello!赋给数组b的语句是( B)。 A. char b[10]={'H','e','l','l','o','!'}; B. char b[10]; b="Hello!"; C. char b[10];strcpy(b,"Hello!"); D. char b[10]="Hello!"; 42.设有定义:int a[10],*p=a+6,*q=a;,则下列运算哪种是错误的( C ) A p-q B p+3 C p+q D p>q

43. 下列描述中不正确的是(C) A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 44 以下对指针变量的操作中,不正确的是(D) A、int a, *p, *q; p=q=&a; B、int a=6, *p, *q=&a; p=q; C、int a=b=6, *p; p=&a; b=*p; D、int a, *p, *q; q=&a; p=*q; 45. 给出以下定义 char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为( C ) 。 A)数组 x 和数组 y 等价 B)数组 x 和数组 y 的长度相同 C)数组 x 的长度大于数组 y 的长度 D)数组 x 的长度小于数组 y 的长度 46、 设变量 y 为 float 类型, 为 int 类型, x 则以下能实现将 y 中的数值保留小数点后两位, 第三位进行四舍五入运算的表达式是 ( B ) A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0 C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.0 47 判断 char 型变量 c1 是否为大写字母的正确表达式是 ( C ) A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z') C、(c1>='A')&&(c1<='Z')D、('A'<=c1) AND ('Z'>=c1) 48 若 a 为已知整型变量,则对指针变量 p 的正确说明和初始化为(B) 。 A.int *p=a; B.int *p=&a; C.int *p=*a; D.int &p=&a; 49 下列条件语句中,功能与其它语句不同的是 ( D ) 。 A.if(a) printf(“%d\n”,x);else printf(“%d\n”,y); B.if(a= =0) printf(“%d\n”,y);else printf(“%d\n”,x); C.if(a!=0) printf(“%d\n”,x);else printf(“%d\n”,y); D.if(a=0) printf(“%d\n”,x);else printf(“%d\n”,y); 50. 若有语句:char *line[5];,以下叙述中正确的是( A ) 。 ?? A)定义 line 是一个指针数组,每个数组元素是一个基类型为 char 的指针变量 ?? B)定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 ?? C)定义 line 是一个指针数组,语句中的*号称为间址运算符 ?? D)定义 line 是一个指向字符型函数的指针 第二部分:中等难度题目(24 个题目,从中选择 8 个,每题 1.5 分共 12 分) 1 设有声明语句:int a=1,b=0;则执行以下语句后输出 : (B) switch (a) { case 1: switch (b) { case 0: printf("**0**");break;

case

1: printf("**1**");break;

} case 2: printf("**2**");break; } A)**0** B)**0****2** C)**0****1****2** D)有语法错误 2 若有如下程序段,其中s,a,b,c均已定义为整型变量,且a、c均已赋值 s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是 ( B )。 A.s=a+b; B.s=a+c; C.s=s+c; D.s=b+c; 3 . 若有程序段: for (m=1;m<=100;m++) { scanf("%d",&y); if(y<0) continue; printf("%3d",m); } 正确的描述是( D )。 A当y<0时整个循环结束 By>=0时什么也不输出 Cprintf函数永远也不执行 D最多允许输出100个非负整数 4. 若有程序段如下: a=b=c=0;x=35; if(!a)x--; else if(b);if(c)x=3; else x=4; 执行后,变量x的值是 ( B ) A.34 B.4 C.35 D.3 5. 有以下程序: #include <stdio.h> void main( ) { int i=0,s=0; for(; ;) { if(i==3||i==5)continue; if(i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是( D ) 。 A)10 B)13 C)21 D)程序进入死循环

6 下面程序段是输出两个字符串中对应位置相等的字符,横线处应该是 (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] 7. 阅读以下程序: #include <stdio.h> void main() { int x; scanf ("%d",&x); if (x--<5) printf("%d",x); else printf("%d",x++); } 程序执行后,如果从键盘上输入 5,则输出结果是 ( B ) A)3 B)4 C)5 D)6 8 int fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++;b++; } return(*a-*b); } ??该函数的功能是___D___。 ??A)计算 a 和 b 所指字符串的长度之差 ??B)将 b 所指字符串连接到 a 所指字符串中 ??C)将 b 所指字符串连接到 a 所指字符串后面 ??D)比较 a 和 b 所指字符串的大小 9. 有如下程序段: char str[14]={"I am "}; strcat(str, "sad !"); scanf("%s", str); printf("%s", str); 当输入为 happy!<CR>时,输出的结果是( B) 。 (A)I am sad! (B)happy! (C)I am happy! (D)happy!ad! 10. 以下程序的输出结果是 ( C ) 。 #include <stdio.h>

#include <string.h> void main( ) { char b[30]; strcpy (&b[0],"CH"); strcpy (&b[1],"DEF"); strcpy (&b[2],"ABC"); printf ("%s\n",b); } A)CHDEF B)DEFABC C)CDABC D)CHABC 11. 下面程序的输出结果为( A ) 。 #include <stdio.h> void main( ) { int a[3],i,j,k=2; for(i=0;i<3;i++) a[i]=0; for(i=0;i<k;i++) for(j=0;j<k;j++) a[j]=i*j; printf("%d\n",a[2]); } A)0 B)1 C)2 D)3 12. 以下程序: #include <stdio.h> void main( ) { int aa[3][3]={{2},{4},{6}}, i,*p=&aa[0][0]; for(i=0;i<2;i++) { if(i ==0) aa[i][i+1]=*p+1; else ++p; printf("%d",* p); } printf("\n"); } 其输出结果是 ( A ) A)23 B)26 C)33 D)36 13. 下面程序的输出结果是( B ) 。 #include <stdio.h> void main( ) { int i,j,k;

char str[5]; for(i=0;i<5;i++)str[i]='A'; k=4; for(i=0;i<k;i++) for(j=0;j<k;j++) str[j]=str[i]+32; printf("%c\n",str[k]); } A)a B)A C)B D)不确定的值 14. 下列程序的输出结果为 ( B ) 。 #include <stdio.h> void main() { int k=0,i,s[ ]={1,-9,7,2,-10,3}; for (i=0;i<6;i++) if (s[i]>s[k]) k=i; printf("\n%d\n",k); } (A)4 (B)2 (C)3 (D)1 15. 以下程序的输出结果是 ( C ) 。 #include <stdio.h> void main( ) { char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; i=8; p=a+i; printf ("%s\n",p-3); } A)6 B) '6' C)6789 D)789 16.有以下程序 #include<stdio.h> void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf("%d\n", *p + *q); }?? 程序运行后的输出结果是 ( B ) 。 ?? A)16 B)10 C)8 D)6 17.有以下程序 #include<stdio.h> void main() {

int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i; for(i=0;i<3;i++) printf("%d",a[1][i]); } 程序运行后的输出结果是 ( D ) ??A)012 B)123 C)234 18. 有以下程序 #include<stdio.h> void main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是( C ) 。 A)42 B)45 C)56 19.有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是( A ) A. 4 B. 3 C. 2 D. 1 20. 以下程序运行后,输出结果是 (A ) 。 #include <stdio.h> int d=1; void fun (int p) { int d=5; d+=p++; printf("%d",d); } void main( ) { int a=3; fun(a); d+=a++; printf("%d\n",d); }

D)345

D)60

A84

B)99

C)95

D)44

第三部分:较难题目(5 个题目,从中选择 4 个,每题 2 分) 1. 有以下程序 #include <stdio.h> void main() { int i,test ,p[17],head; for(i=0;i<16;i++) p[i]=i+1; p[16]=0; test=0; while(test!=p[test]) { for(i=1;i<3;i++) { head=test; test=p[test]; } p[head]=p[test]; test=p[head]; } printf("\n%5d",test); } 程序执行后的输出结果是___C____。 A)1,2,3 B)2,3,4 C)10 D)4 2.有以下程序 #include <stdio.h> void main() { char ch[2][5]={"693","825"},*p[2]; int i,k,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); } 程序执行后的输出结果是__A_____。 A)6385 B)22 C)33 D)693825

3.有以下程序 #include <stdio.h> void f (int *x,int *y) { int t; t=*x;*x=*y;*y=t; } void main( ) { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p<q) { f (p,q); p++;q--; } for (i=0;i<8;i++) printf("%d,",a[i]); } 程序运行后的输出结果是 D。 (A)8,2,3,4,5,6,7,1, (B)5,6,7,8,1,2,3,4, (C)1,2,3,4,5,6,7,8 (D)8,7,6,5,4,3,2,1, 4. 以下程序的输出结果是 。 #include <stdio.h> int x=3; void incre( ) { static int x=1; x*=x+1; printf("%d ",x); } void main( ) { int i; for (i=1;i<x;i++) incre( ); } A)3 3 B)2 2 C)2 6 D)2 5 5.以下程序 #include <stdio.h> #include <string.h> void f(char *s, char *t) { char k;

k=*s; *s=*t; *t=k; s++; t--; if (*s) f(s, t); } void main() { char str[10]="abcdefg", *p; p=str+strlen(str)/2+1; f(p, p-2); printf("%s\n",str); } ??程序运行后的输出结果是____B__。 ?? A)abcdefg B)gfedcba C)gbcdefa D)abedcfg 第二部分:填空题(共 5 题,每题 2 分,共 10 分) A 卷部分 1、如 float x=4.3; int a; a=4*x+(int)x; 则 a 的值为_____21_______。 2、下面程序的输出结果为 ___CDEFEF_________ char b[]="CDEF"; main() { char *chp ; for (chp=b;*chp ;chp+=2) printf("%s",chp); printf("\n"); } 3、 程序 char *a="I Love China!"; a+=7; printf("%s",a); 的输出结果为______China! ___。 4、若有以下的说明和语句,则在执行for语句后,*(*(pt+2)+3)表示的数组元素是 _t[2][3]__: int t[3][3], *pt[3], k; for (k=0;k<3;k++) pt[k]=&t[k][0]; 5.如 int *p[3], a[6]={1,2,3,4,5,6},i; for (i=0;i<3;i++) p[i]=&a[2*i]; i= *(p[1]+1); 则 i 的值为____4____。 B 卷部分 1、如 float x=5.3; int a; a=5*x+(int)x; 则 a 的值为___31_________。 2、下面程序的输出结果为 ___EFDGG_________ char b[]="EFDG"; main() { char *chp ; for (chp=b;*chp ;chp+=3) printf("%s",chp); printf("\n"); } 3、程序 char *a="I Love China!"; a+=9; printf("%s",a); 的输出结果为ina!。 4.若有以下的说明和语句,则在执行 for 语句后,*(*(pt+l)+2)表示的数组元素是 ___t[l][2]__: int t[3][3], *pt[3], k; for (k=0;k<3;k++) pt[k]=&t[k][0]; 5.如int *p[3], a[6]={1,2,3,4,5,6},i;for (i=0;i<3;i++) p[i]=&a[2*i];i=*(p[1]+1);

则i的值为____4____


C语言练习题填空题1

2012-2013学年二学期 C 语言期末考试试卷(A 卷) 班级:___学号:___姓名:_...各大题标有题量和总分) 填空题(24小题,共100分) 1. 以下程序的功能是...

【C语言】选择题汇总(1)

C语言选择题汇总(1)_电脑基础知识_IT/计算机_专业资料。第一章选择题 1...当输入一对相等数时结 束循环,请选择填空。B #include <stdio.h> void main...

c语言经典题目;带答案

c语言经典题目;带答案_IT认证_资格考试/认证_教育专区。大学考试必练,很有用第1 题: 输入 3 个整数,输出其中最大数。样例输入:1 3 2 样例输出:3 第 2 ...

c语言题库1

c语言题库1_工学_高等教育_教育专区。上海海事大学 学生联合会 试卷总分:100 分 共有题型:6 种一、填空 共 15 题 (共计 15 分) 第 1 题(1.0 分) ...

c语言程序设计选择题1

c语言程序设计选择题1_计算机软件及应用_IT/计算机_专业资料。1、在C语言中,合法的字符常量是( A.'字' B."A" C."ABC" D.'\x41' 2、 下面叙述正确的...

第1章C语言基础选择题

(1)以下叙述中错误的是 A)C程序经过编译、连接步骤之后才能形成个真正可执行的二进制机器指 令文件 B)用C语言编写的程序称为源程序,它以ASCII代码形式存放在...

C语言上机 经典题目!(1)

C语言上机 经典题目!(1)_IT/计算机_专业资料。配合谭浩强C语言书效果更佳《...2级C语言上机题 1 4页 免费 C语言上机题(1) 121页 2下载券 经典c语言上机...

C语言十道题(带答案)(1)

C语言十道题(带答案)(1)_其它_高等教育_教育专区。c语言程序设计石家庄铁道...C语言第二章习题带答案-... 2页 免费 C语言练习题-填空题(带答... 95...

C语言题库(1)

C语言题库(1)_IT认证_资格考试/认证_教育专区。一、填空题 1.fun 函数,该函数的功能是:将字符串 tt 中的大写字母都改为对应的小写字母,其他字 符不变。...

C语言(1-3章习题)

(√) 二、填空题 1、计算机算法可以用自然语言、 流程图 方法表示。 2、...条件 x>y>z,正确的逻辑表达式是: 三、单项选择题 1、以下描述正确的是(C ...