c语言考试题及答案

上传人:仙*** 文档编号:26941717 上传时间:2021-08-14 格式:DOC 页数:93 大小:161.50KB
收藏 版权申诉 举报 下载
c语言考试题及答案_第1页
第1页 / 共93页
c语言考试题及答案_第2页
第2页 / 共93页
c语言考试题及答案_第3页
第3页 / 共93页
资源描述:

《c语言考试题及答案》由会员分享,可在线阅读,更多相关《c语言考试题及答案(93页珍藏版)》请在装配图网上搜索。

1、一、选择题 (1) 在C语言中,如果下面的变量都是int类型,则输出的结果是 sum=pad=5; pad=sum + + ,pad + + , + + pad; printf("%d\n",pad); A) 7 B) 6 C) 5 D) 4 (2) 以下程序的输出结果是 # include main() { int i=010 , j = 10; printf("%d,%d\n",+ +i , j - -); } A) 11,10 B) 9,10 C) 010,9 D) 10,9 (3) 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结

2、果是 # include main() { char c1=A, c2=Y; printf("%d,%d\n",c1,c2); } A) 因输出格式不合法,输出错误信息 B)65,90 C)A,Y D)65,89 (4) 指针s所指字符串的长度为 char *s="\\"Name\\Address\n"; A) 19 B) 15 C) 18 D) 说明不合法 (5) 设有说明int(*ptr)[m];其中的标识符ptr是 A)M个指向整型变量的指针 B)指向M个整型变量的函数指针 C)一个指向具有M个整型元素的一维数组的指针 D)具有M个指针元素

3、的一维指针数组,每个元素都只能指向整型量 (6) 语句while(!E);中的条件!E等价于 A)E = = 0 B)E!=1 C)E!=0 D)~E (7) 以下程序的输出结果是 # include main() { printf("%d\n",NULL); } A) 不确定的(因变量无定义) B)0 C)-1 D)1 (8) 以下函数调用语句中含有的实参个数为。 func((exp1,exp2),(exp3,exp4,exp5)); A) 1 B) 2 C) 4 D) 5 (9) 设有以下语句: char a=3,b=6,c; c=a^b<<2

4、; 则c的二进制值是 A) 00011011 B)00010100 C)00011100 D)00011000 (10) 下面的程序中第几行有错误(每行程序前面的数字是行号)。 1 #include 2 main() 3 { 4 float a[3]={0,0}; 5 int i; 6 for(i=0;i<3;i + + ) scanf("%d",&a[i]); 7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i]; 8 printf("%f\n",a[0]); 9 } A) 没有 B)第4行 C)第6行 D)第8行 (11)

5、 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是 A)3 B)0 C)9 D)-12 (12) 以下的for循环 for(x=0,y=0; (y!=123)&&(x<4); x + + ); A) 是无限循环 B)循环次数不定 C)执行4次 D)执行3次 (13) 设有语句char a=\72;则变量a A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法 (14) 以下程序的输出结果是 # include # include main() { int a=1,b=4,c=2; float

6、 x=10..5 , y=4.0 , z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; pritnf("%f\n",z); } A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000 (15) sizeof(double)是 A)一种函数调用 B)一个双精度型表达式 C)一个整型表达式 D)一个不合法的表达式 (16) C语言中 A)不能使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出 C)do-while语句构成的循环,当while语句中的表达式

7、值为非零时结束循环 D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (17) 以下程序的输出结果是 # include # include main() { char str[12]={s,t,r,i,n,g}; printf("%d\n",strlen(str)); } A) 6 B) 7 C) 11 D) 12 (18) 以下程序的输出结果是 # include main() { int a=2,c=5; printf("a=%%d,b=%%d\n",a,c); } A

8、) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d (19) 以下程序的输出结果是 # include main() { int a ,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } A) 6,1 B) 2,1 C) 6,0 D) 2,0 (20) 以下程序的输出结果是 # include main() { int i; for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*"

9、); else continue; printf("#");} printf("$\n"); } A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$ (21) 以下for语句构成的循环执行了多少次 # include # define N 2 # define M N+1 # define NUM (M+1)*M/2 main() { int i , n=0; for ( i=1;i<=NUM;i + + ); {n + + ; printf("%d",n); } printf("\n"); } A) 5 B) 6 C

10、) 8 D) 9 (22) 设有以下语句,则不是对a数组元素的正确引用的选项是(其中0≤i<10) int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; A) a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i)) (23) 有以下程序: # include # define N 6 main() { char c[N]; int i=0; for ( ;i

11、 输入以下三行,每行输入都是在第一列上 开始,代表一个回车符: a b cdef 程序的输出结果是 A) abcdef B) a C) a D) a b b b c cd cdef d e f (24) 以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。 # include findmax ( s ,

12、 t , k ) int *s , t , *k; { int p; for(p=0,*k=p;p s[*k] )_________; } main() { int a[10] , i , k ; for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]); findmax ( a,10,&k ); printf ( "%d,%d\n" , k , a[k] ); } A) k=p B) *k=p-s C) k=p-s D) *k=p (25) 有以下程序: #include u

13、nion pw { int i; char ch[2]; } a; main() { a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); } 程序的输出结果是(注意: ch[0]在低字节,ch[1]在高字节。) A) 13 B) 14 C) 208 D) 209 (26) 有以下程序: # include main() { int c; while((c=getchar())!=\n) { switch(c-2) { case 0: case 1: putchar(c+4); case 2: putchar(c+4

14、);break; case 3: putchar(c+3); case 4: putchar(c+2);break; } } printf("\n"); } 从第一列开始输入以下数据,代表一个回车符。 2743 程序的输出结果是 A) 668977 B) 668966 C) 6677877 D) 6688766 (27) 以下程序的输出结果为 main() { char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"}; char **p; int i; p=alpha; for(i=0;i<4;i + +

15、) printf("%s",p[i]); printf("\n"); } A) ABCDEFGHIJKL B) ABCD C) ABCDEFGHIJKLMNOP D) AEIM (28) 以下程序的输出结果是 # include # define FUDGE(y) 2.84+y # define PR(a) printf("%d",(int)(a)) # define PRINT1(a) PR(a);putchar(\n) main() {int x=2; PRINT1(FUDGE(5)*x); } A) 11 B) 12 C) 13 D) 15 (29)

16、 以下程序的输出结果是 # include main() { int i=1,j=3; printf("%d",i + + ); { int i=0; i+=j*2; printf("%d,%d",i,j); } printf("%d,%d\n",i,j); } A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3 (30) 以下程序的输出结果是 # include main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=fun

17、c(k,m); printf("%d\n",p);} func(a,b) int a,b; { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A) 8,17 B) 8,16 C) 8,20 D) 8,8 (31) 设有以下语句: char str[4][12]={"aaa","bbbb","ccccc","dddddd"}, *strp[4]; int i; for(i=0;i<4;i + + )strp[i]=str[i]; 不是对字符串的正确引用的选项是(其中0≤k<4) A) strp B) str[k] C

18、) strp[k] D) *strp (32) 设有以下语句: char str1[]="string",str2[8],*str3,*str4="string"; 则不是对库函数strcpy的正确调用的选项是(库函数用于复制字符串) A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2"); C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4"); (33) C语言中形参的缺省存储类别是 A)自动(auto) B)静态(static) C)寄存器(register) D)外部(exte

19、rn) (34) 设有以下语句: struct st {int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,\0},*p; p=&a[0]; 则下列哪一个表达式的值是6 A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n (35) 以下四个程序中,哪一个不能对两个整型变量的值进行交换 A)# include main() { int a=10,b=20; swap(&a,&b); printf("%d %d\n",a,b)

20、; } swap(p,q) int *p,*q; { int *t; t=(int )malloc(sizeof(int)); t=p;*p=*q;*q=*t; } B) # include main() { int a=10,b=20; swap(&a,&b); printf("%d %d\n",a,b); } swap(p,q) int p,q; { int *t; t=*p;*p=*q;*q=t; } C) # include main() { int *a,*b; *a=10,*

21、b=20; swap(a,b); printf("%d %d\n",*a,*b); } swap(p,q) int *p,*q; { int t; t=*p;*p=*q;*q=t; } D) # include main() { int a=10,b=20; int x=&a,y=&b; swap(x,y); printf("%d %d\n",a,b); } swap(p,q) int *p,*q; { int t; t=*p;*p=*q;*q=t; } 二、填空题 (1) 以下C语言程序将磁盘中的一个文件复制到另一个

22、文件中,两个文件名在命令行中给出。 #include main(argc,argv) int argc; char *argv[]; { FILE *f1,*f2; char ch; if(argc< 【1】 ) { printf("Parameters missing!\n"); exit(0); } if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL)) { printf("Can not open file!\n"); exit(0);} while( 【

23、2】 )fputc(fgetc(f1),f2); fclose(f1); fclose(f2); } (12) 以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为: n-1 a-b s=((f(a)+f(b))/2+∑ f(a+i*h))*h , h=|----| i=1 n 其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是: f(x)=x*x+3*x+2,且n=1000,a=0,b=4。 #include 3include double trap(fun,a,b) double (*

24、fun)(),a,b; { double t,h; int i,n=1000; t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n); for(i=1;i<=n-1;i + + ) t=t+ 【3】 ; t=t*h; return(t); } double mypoly(x) double x; { return(x*x+3.0*x+2.0); } main() { double y,(*pf)(); pf= 【4】 ; y=trap(pf,0.0,4.0); printf("%f\n",y); } (13) 以下程序

25、求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。 #include main() { int i,a[10],*p=a,sum=0; printf("Enter 10 num:\n"); for(i=0;i<10;i + + ) scanf("%d",&a[i]); for(i=0;i<10;i + + ) if(isprime(*(p+ 【5】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); } printf("\nThe sum=%d\n",sum)

26、; } isprime(x) int x; { int i; for(i=2;i<=x/2;i + + ) if(x%i = = 0) return (0); 【6】 ; } (14) 以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。 #include #define N 10 invert(s,i,j) int *s,i,j; { int t; if(i

27、N],i; for(i=0;inext = = NULL). #include struct list { int data;struct list *next;}; 【9】 creatli

28、st() { struct list *p,*q,*ph; int a; ph=(struct list *) malloc(sizeof(struct list)); p=q=ph; printf("Input an integer number,enter -1 to end:\n"); scanf("%d",&a): while(a!=-1) { p=(struct list *)malloc(sizeof(struct list)); p->data=a; q->next=p; 【10】 =p; scanf("%d",&a); } p->next=\0; return(

29、ph); } main() { struct list *head; head=creatlist();} 参考答案 选择题: (1)C (2)B (3)D (4)B (5)C (6)A (7)B (8)B (9)A (10)C (11)D (12)C (13)A (14)C (15)C (16)D (17)A (18)D (19)B (20)A (21)C (22)D (23)C (24)D (25)A (26)A (27)C (28)B (29)B (30)A (31)A (32)C (33)A (34)D (35)C 填空题: (1)3 (2)!feof(

30、f1)或feof(f1)==0 (3)(*fun)(a+i*h) (4) mypoly (5)I (6)return 1 或 return (1) (7)i+1 (8) I (9) struct list * (10) q 一、选择题 (1) 请选出可用作C语言用户标识符的一组标识符 A) void B) a3_b3 C) For D) 2a define _123 -abc DO WORD IF Case sizeof (2) 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 A) 552 B) 264 C) 144 D) -264 (3)

31、C语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 (4) 请选出合法的C语言赋值语句 A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b); (5) 执行下面程序片段的结果是 int x=23; do { printf("%2d",x--);} while(!x); A) 打印出321 B) 打印出23 C) 不打印任何内容 D) 陷入死循环 (6) 请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n")); A) 5 B) 14 C) 8 D) 输出项不合法,无

32、正常输出 (7) 设有如下的函数 ggg(x) float x; { printf("\n%d",x*x);} 则函数的类型 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定 (8) 设有如下枚举类型定义: enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为 A) 4 B) 7 C) 102 D) 103 (9) 若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(

33、cp+3) C) *(cp+1)+3 D) *(*cp+2) (10) 标准函数 fgets(s, n, f) 的功能是 A) 从文件f中读取长度为n的字符串存入指针s所指的内存 B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C) 从文件f中读取n个字符串存入指针s所指的内存 D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存 (11) 设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A) 120 B) 110 C) 100 D) 90 (12) 以下程序

34、段给数组所有的元素输入数据,请选择正确答案填入。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇ } A) a+(i++) B) &a[i+1] C) a+i D) &a[++i] (13) 设有如下的程序段: char str[ ]="Hello"; char *ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为 A) o B) \0 C) 不确定的值 D) o的地址 (14) 在宏定义 #define PI 3.14159中,用宏名P

35、I代替一个 A) 单精度数 B) 双精度数 C) 常量 D) 字符串 (15) 字符(char)型数据在微机内存中的存储形式是 A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 (16) 执行下面的程序段 int x=35; char z=A; int b; B=((x&15)&&(z

36、接递归调用 (18) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 的表达式是 A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c (19) 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是 A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x (20) 设有 static char str[ ]="Beijing"; 则执行 printf("%d\n", strlen(strcpy(str,"China"))); 后的输出结果为 A) 5

37、 B) 7 C) 12 D) 14 (21) 设有如下程序: #include main() { int **k, *j, i=100; j=&i; k=&j; printf("%d\n", **k); } 上面程序的输出结果是 A) 运行错误 B) 100 C) i的地址 D) j的地址 (22) 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行 (m=a>b)&&(n=c>d) 后n的值为 A) 1 B) 2 C) 3 D) 4 (23) 下面函数的功能是 sss(s, t) char *s, *t; { while

38、((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 (24) 请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; { *z=y-x; } main() { int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n", a,b,c); } A) 5,2,3 B) -5

39、,-12,-7 C) -5,-12,-17 D) 5,-2,-7 (25) 下面程序的输出结果是 #include main() { int i=2,p; p=f(i,i+1); printf("%d",p); } int f(a,b) int a,b; { int c; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } A) -1 B) 0 C) 1 D) 2 (26) 请选出以下程序段的输出结果 #include #define MIN(x,y) (x)

40、<(y)? (x):(y) main() { int i,j,k; i=10; j=15; k=10*MIN(i,j); printf("%d\n",k); } A) 15 B) 100 C) 10 D) 150 (27) 请选出以下程序段的输出结果 #include main() { char sl[10], s2[10], s3[10], s4[10]; scanf("%s%s",s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); } 输入数据如下:(此处

41、R>代表回车符) aaaa bbbb cccc dddd A) aaaa B) aaaa C) aaaa D) aaaa bbbb bbbb bbbb bbbb cccc cccc cccc dddd dddd cccc dddd dddd eeee (28) 请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; { int i, j, t; i=n1; j=n2; while(i

42、)= *(s+j); *(s+j)=t; i++; j--; } } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i, *p=a; fun(p,0,3); fun(p,4,9); fun(p,0,9); for(i=0; i<10; i++) printf("%d", *(a+i)); printf("\n"); } A) 0 9 8 7 6 5 4 3 2 1 B) 4 3 2 1 0 9 8 7 6 5 C) 5 6 7 8 9 0 1 2 3 4 D) 0 9 8 7 6 5 1 2 3 4 (29) 请选出以下程序的输出结果

43、 #include main() { int a[ ]={ 1,2,3,4 },i; int x=0; for(i=0; i<4; i++) { sub(a,x); printf("%d",x);} printf("\n"); } sub(s,y) int *s, y; { static int t=3; y=s[t]; t--; } A) 1 2 3 4 B) 4 3 2 1 C) 0 0 0 0 D) 4 4 4 4 (30) 下面程序的输出结果为 struct st { int x; int *y; } *p; int dt[4]

44、={10,20,30,40}; struct st aa[4]={ 50,&dt[0],60,&dt[1], 70,&dt[2],80,&dt[3] }; main() { p=aa; printf("%d\n", ++p->x ); printf("%d\n", (++p)->x); printf("%d\n", ++( *p->y)); } A) 10 B) 50 C) 51 D) 60 20 60 60 70 20 21 21 31 二、填空题 (1) 设有如下程序段: int i

45、=0, sum=1; do { sum+=i++;} while(i<6); printf("%d\n", sum); 上述程序段的输出结果是 【1】 。 (2) 阅读下列程序: #include main() { int i, j, row, column,m; static int array[3][3]={{100,200,300}, {28,72,-30}, {-850,2,6} }; m=array[0][0]; for (i=0; i<3; i++) for (j=0; j<3; i++) if (array[i][j]

46、{ m=array[i][j]; row=i; column=j;} printf("%d,%d,%d\n",m,row,column); } 上述程序的输出结果是 【2】 。 (3) 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是 【3】 。 (4) 下面程序的输出结果是 【4】 。 #include main() { int a=3, b=2, c=1; c-=++b; b*=a+c; { int b=5, c=12; c/=b*2; a-=c; printf( %

47、d,%d,%d,",a,b,c); a+=--c; } printf( %d,%d,%d,",a,b,c); } (5) 设有如下程序: #include main(argc,argv) int argc; char *argv[ ]; { while( --argc>0) printf("%s",argv[argc]); printf("\n"); } 假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROG ABCD EFGH IJKL ,则输出结果为 【5】 。 (6) 阅读下列程序: #includ

48、e #define MAX_COUNT 4 void fun(); main() { int count; for (count=1; count<=MAX_COUNT; count++) fun(); } void fun() { static int i; i+=2; printf("%d",i); } 上述程序的输出结果是 【6】 。 (7) 设有下列程序: #include #include main() { int i; char str[10], temp[10]; gets(temp);

49、 for (i=0; i<4; i++) { gets(str); if (strcmp(temp,str)<0) strcpy(temp,str); } printf("%s\n",temp); } 上述程序运行后,如果从键盘上输入(在此代表回车符): C++ BASIC QuickC Ada Pascal 则程序的输出结果是 【7】 。 (8) 设有如下程序: #include main(argc,argv) int argc; char *argv[ ]; { FILE *fp; vo

50、id fc(); int i=1; while( --argc>0) if((fp=fopen(argv[i++],"r"))==NULL) { printf("Cannot open file! \n"); exit(1); } else { fc(fp); fclose(fp); } } void fc(ifp) FILE *ifp; { char c; while((c=getc(ifp))!=#) putchar(c-32); } 上述程序经编译、连接后生成可执行文件名为cpy.exe。假定磁盘上有三个 文本文件,其文件名和内容分别为: 文件名 内容

51、 a aaaa# b bbbb# c cccc# 如果在DOS下键入 cpy a b c 则程序输出 【8】 。 (9) 若输入3个整数3,2,1,则下面程序的输出结果是【9】 。 #include void sub( n,uu) int n, uu[ ]; { int t; t=uu[n--]; t+=3*uu[n]; n=n++; if(t>=10) { uu[n++]=t/10; uu[n]=t%10;} else uu[n]=t; } main( ) { int i, n, aa[10]={0,0,0,0,0,0} sca

52、nf( "%d%d%d",&n,&aa[0],&aa[1]); for(i=1; i #include main( ) { int num[26],i; cha

53、r c; for(i=0; i<26; i++) num[i]=0; while( 【12】 !=#) /*统计从终端输入的大写字母个数*/ if( isupper(c)) num[c-65]+=1; for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf("%c:%d\n,i 【13】 , num[i]); } (12) 下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。请填空。 #include get

54、one(s) int **s; { *s=(int *)malloc(sizeof(int));} assone(a) int *a; { scanf("%d", 【14】 );} outone(b) int *b; printf("%d\n", 【15】 );} main( ) { int *p; getone(&p); assone(p); outone(p); } 选择题: (1)B (2)D (3)C (4)B (5)B (6)A (7)C (8)C (9)D (10)B (11)B (12)A (13)B (14)D (15)D (16)

55、B (17)A (18)D (19)A (20)A (21)B (22)B (23)B (24)B (25)A (26)A (27)A (28)C (29)C (30)C 填空题: (1) 16 (2) -850,2,0若遗漏逗号扣1分 (3) 28 (4) 2,5,1,2,3,-2若遗漏逗号扣1分 (5) IJKLEFGHABCD 若在字符间嵌入空格扣1分 若在字符间嵌入空格扣1分 (6)2468 (7) QuickC 若大写字母写成小写字母,或小写字母写成大写字母扣1分 (8) AAAABBBBCCCC 若在字符间嵌入空格扣1分若用小写字母扣1分 (9) 2 7

56、 2 1 或2721 (10) 9 (11) 0 (12) (c=getchar()) 注意,外层括号不得遗漏 (13) +65 或 +A (14) a 或&*a (15) *b 一、选择题 (1) 下列叙述中正确的是 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有函数都是外部函数 (2) 以下所列的C语言常量中,错误的是 A) 0xFF B) 1.2e0.5 C) 2L D) \72 (3) 下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) def

57、ault (4) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子 的C语言表达式是 A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z (5) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6 (6) 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1 (7) 若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋

58、于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: A) 10<回车> B) 10.0,22.0,33.0<回车> 22<回车> 33<回车> C) 10.0<回车> D) 10 22<回车> 22.0 33.0<回车> 33<回车> (8) 若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 Main0 { int n; scanf("%d",&n); if(n++<10) printf("%d\n",n); else printf("%d\n",n--); } (9) 若a、 b、c1、c2、x、y、均是整型变

59、量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:

60、case 11:y=a-b;break; } } (10) 有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 (11) 以下程序执行后sum的值是 A)15 B)14 C) 不确定 D)0 min() { int i , sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } (12) 有以下程序段 int x=3 do { printf("%d",x-=2); } while (!(--x))

61、; 其输出结果是 A) 1 B) 3 0 C) 1 -2 D) 死循环 (13) 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) a<=c<= z B) (c>= a)||(c<= z) C) (a<=c)and (z>=c) D) (c>= a)&&(c<= z) (14) 以下所列的各函数首部中,正确的是 A) void play(var :Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b) D) Sub play(a as integer,b as intege

62、r) (15) 以下程序的输出结果是 A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } (16) 下列程序段的输出结果是 A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 void fun(int *x, int *y) { printf("%d %d", *x, *y); *x=3; *y=4;} main() { int x=1,y=2; fun(

63、&y,&x); printf("%d %d",x, y); } (17) 下列程序的输出结果是 A) 非法 B)a[4]的地址 C)5 D)3 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p); } (18) 下列程序的运行结果是 A) 6 3 B) 3 6 C) 编译出错 D) 0 0 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x

64、,y); printf("%d %d", a, b); } (19) 下面程序的输出结果是 A) 0 B) 1 C) 10 D) 9 main() { int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf("%d\n",*p+9); } (20) 当调用函数时,实参是一个数组名,则向函数传送的是 A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 (21) 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述

65、中不正确的是 A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 (22) 以下只有在使用时才为该类型变量分配内存的存储类说明是 A) auto和 static B) auto和 register C) register和 static D) extern和 register (23) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A) EOF B) -1 C) 非零值 D) NULL (24) 以下程序的输出结果是 A) 20 B) 21 C) 2

66、2 D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); } (25) 以下程序的输出结果是 A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); } (26) 以下程序的输出结果是 A) 18 B) 19 C) 20 D)21 main() { int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++) for(j=0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!