C程序设计基础复习题_第1页
C程序设计基础复习题_第2页
C程序设计基础复习题_第3页
C程序设计基础复习题_第4页
C程序设计基础复习题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c语言规定,任何非0的数像1 -1等都被认为是真,而0被认为是假1>1为假试题一、单选题1. 已知int k,m=1;执行语句k=-m+;后,k的值是_。【知识点:难度:正确答案:A】A-1 B0 C1D-22. 已知定义int m; float k; 正确的语句是 。【知识点:难度:正确答案:D】A(int k)%mBint(k)%mCint(k%m)D(int)k%m3. 当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是_。【知识点:难度:正确答案:B】Am=k=nB(m=k)&&(n=m)C(m=k)|(n=k)D(n=m)&&

2、(m=k)4. 已知 int x=5; 表达式6>x>1值是_。【知识点:难度:正确答案:A】A0B1C5D表达式语法错表达式6>x>1 ,先判断6>x 为0,再判断0>1,所以值为0。(6>x 为1 ,再判断1>1,所以值为0。)5. 下列程序段执行后c值为_。【知识点:难度:正确答案:D】int k=7, c=0;while(-k) if (k%3) continue; else c+;A5B4C3D26. 已知字母a的ASCII码为十进制数97,且ch为字符型变量,则执行语句ch=a+D-A;后,ch中的值为_。【知识点:难度:正确答案:C

3、】AdBcC100D不确定7. 设m,n已正确定义,执行语句for(m=0, n=10; m<n; m+=3,n-);以后,m,n的值是_。【知识点:难度:正确答案:C】A6,7B7,6C9,7D7,98. 已知char *t =”How”, ”are”, ”you!”;则t是_。【知识点:难度:正确答案:B】A指向char变量的指针B指向字符指针的指针常量C指向”How”的指针变量D指向H的指针9. 假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是_。【知识点:难度:正确答案:C】Achar s5 = "AB

4、CDE" puts(s)Bchar s5 = A,B,C,D,E; puts(s);Cchar *s; s = "ABCDE" puts(s);Dchar *s; scanf(“%s”,s); puts(s);10. 以下程序有错,错误原因是_。【知识点:难度:正确答案:D】main() int *p, i; char *q, ch;p = &i;q = &ch;*p = 40;*p = *q;.A. p和q的类型不一致,不能执行*p=*q;语句B. *p中存放的是地址值,因此不能执行*p=40;语句C. q没有指向具体的存储单元,所以*q没有实际

5、意义D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果11. 若有定义:int a=2, b=5, c=8; 则表达式c |= (a && b) !(a & b)的值为_。【知识点:难度:4正确答案:B】A14 B 8 C1D012. 设int a=5, b=7, 表达式(+a = b-)? + a : -b 的值是_。【知识点:难度:2正确答案:C】A7 B 6 C5D413. 设a=3, b=2, 那么表达式 (a=b=7, b=a!=7) 的值是 。【知识点:难度:2正确答案:D】A1 B2 C7D

6、0逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗号表达式的值。而b=a!=7的值为0逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行14. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行语句(m=a>b)&&(n=c>d);后n的值是_。 【知识点:难度:3正确答案:A】A2 B1 C0D3&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能

7、,即如果第一个表达式为false,则不再计算第二个表达式,15. 下列程序段的输出结果是_。 【知识点:难度:3正确答案:B】int k=2, s=0;switch (k) case 2: s+; k+; case 1: s+; case 3: s+=1; switch(s) case 2: s+=2; break; default: k+; break; default: s+=3; printf("%d#%d#", s, k);A1#3# B6#4# C3#2#D3#4#16. 下列程序的输出结果是_。 【知识点:难度:2正确答案:C】 int f(int x) sta

8、tic int k; return +k + x;main( ) int k; for(k=1; k<4; k+) printf("%d#", f(k) );A2#5# B3#6# C2#4#6#D不确定17. 下列程序的输出结果是_。 【知识点:难度:2正确答案:D】main() char x=040;printf("%on",x<<1);A o B 40 C1000000D10018. 下列程序段的输出是_。 【知识点:难度:3正确答案:A】main() int x= -9, y=5, z=8;if(x=y)if(x>0)z=

9、0;  else z+=1;printf("z=%dn", z);Az=0 Bz=1 Cz=8Dz=9esle子句与其之前最近的不完整if配对。C语言中等号“=”为赋值运算符,不用于判断相等,判断相等应用“=”,因此执行x=y后,x=5,if(5)相当于if( true),  执行if(x>0)z=0,所以z=019. 下列程序段的输出是_。【知识点:难度:3正确答案:B】#define SQ(a,b) (a*a-2*a*b+b*b) main() int k=4;printf("%d", SQ(k, k-1

10、) ); A1 #define定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会自动加括号,因此SQ(k, k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2SQ(4,3)=-4*4-2=-18B-18 C-15D-820. 若运行以下程序时,从键盘输入Hello_Everyone!<CR>(<CR>表示回车),则下面程序的运行结果是_。【知识点:难度:2正确答案:C】main()char c;int v1=0,v2=0;doswitch(c=getchar()case 'a': case 'A':

11、 case 'e': case 'E': case 'i': case 'I': case 'o': case 'O':case 'u': case 'U': v1+=1;default: v1+=1;v2+=1; while( c != 'n' ); printf("%d,%dn", v1, v2);A6,10 B21,10 C22,10D6,921. 下列程序段输出 _。【知识点:难度:4正确答案:D】main() char s

12、tr25 = "abcd" ;strcpy( str0, "You" ); strcpy( str1, "Me" );str03 = '&'printf( "%sn", *str );AYou&Me Babcd Cabc&DYou&22. 对于函数f,调用 f (12345) 的输出是_。【知识点:难度:3正确答案:A 】void f (int n) if(n<10)  printf( "%1d", n );   

13、0;  else f(n/10);   printf( "%1d", n%10); A12345 B54321 C11111D543223. 下列程序段的输出结果是_.【知识点:难度:2正确答案:B】void fun(char *fname,char *st)FILE *myf; int i;myf = fopen(fname,"w" );for(i=0; i<strlen(st); i+) fputc(sti, myf);fclose(myf);void main() fun("test_", &

14、quot;C_"); fun("test_", "is_fun");AC_is_fun Bis_fun Ctest_is_funDC_试题二、程序阅读题1. 以下程序的输出结果是_。【知识点:难度:3正确答案:C】main()char ch25= "1234", "5678" , *p2;int i,j,s=0;for(i=0; i<2; i+)pi= chi;for(i=0; i<2; i+)for(j=0; pij> 0; j+=2)s=10*s + pij- 0;printf(&q

15、uot;%dn", s);A1537 B2468 C1357D26482. 运行下列程序的输出结果是_。【知识点:难度:3正确答案:D】struct stint x; int *y; *p;int dt4 = 10, 20, 30, 40 ;struct st aa4 = 50, &dt0, 60, &dt1, 70, &dt2, 80, &dt3 ;main() p=aa;printf("%d,", +p->x); printf("%d,", +p->x); printf("%d"

16、;, + (*p->y);A60,60,21 B51,51,21 C 60,70,31D51,52,11 3. 下列程序的输出结果是_。【知识点:难度:4正确答案:A】void fun(int m, int *a, int *n)int i,j=0;for( i=1; i<=m; i+ )if(i%3=0 && i%7=0)aj+=i;*n=j;void main()int aa50,n,k;fun(50, aa, &n);for(k=0; k<n; k+) printf("%d#", aak);A21#42# B3#7# C 3#

17、7#21#42#D 3#7#9#49#4. 运行下面程序的输出结果是_。【知识点:难度:3正确答案:B】int x, y;int f( int n )static int x=0; x+;if( !(n%3)printf("%d", n);elsey+;return x;void main() int i; x=1; y=5; for( i = 0; i < 7 ; i+) x = f( i ); printf("#%d#%dn", x, y);A1245#7#10 B036#7#9 C 1245#1#9D 036#1#105. 如果已经有了有关的

18、定义,则下列程序的输出结果为_。【知识点:难度:4正确答案:C】main() int i, n=7; char b7, *a = "January", "February", "March", "April", "May", "June", "July" ; f(a, n);for (i=0; i<n; i+) if( strlen(ai) >= i ) bi=*(ai+i); bi='0'printf("%sn&qu

19、ot;, b);void f(char *a, int n) int i, j;char *temp; for( i = 1; i < n; i+) for (j = 0; j < n-i; j+ ) if (strcmp(aj, aj+1) > 0) swap(&aj, &aj+1);void swap(char *s1, char *s2)char *temp;temp=*s1; *s1=*s2; *s2=temp;AJeri BJuyichay C AenyD JFMAMJJ试题三、程序(段)填空题1. 下面的程序输入n ( 1<=n<=10

20、),打印出n行杨辉三角。第m行有m个整数,其中第i个整数是 m选i的组合数:Ci,m。每个数右对齐占4位,相邻行交错显示,呈金字塔状。例如,输入6以后,输出的金字塔是:【知识点:难度:3正确答案:(1)A (2)B (3)G】 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1/* 1 */ #include "stdio.h"/* 2 */ main()/* 3 */ /* 4 */int i, j, n, a1010;/* 5 */scanf("%d",&n);/* 6 */for( i=0; i<n

21、; i+ ) /* 求每行两端数据 */* 7 */ai0=aii=1;/* 8 */for( i=0; i<_(1)_; i+ ) /* 9 */ for( j=1; j<_(2)_; j+ ) /* 求每行的内部数据 */* 10 */aij = ai-1j-1 + ai-1j;/* 11 */printf("n");/* 12 */for(i=0; i<n; i+)/* 13 */* 14 */ for(j=0; j<_(3)_; j+) printf(" "); /* 打印前导空格 */* 15 */for(j=0; j&

22、lt;=i; j+) /* 打印一行数据 */* 16 */ printf("%4d", aij);/* 17 */printf("n"); /* 换行 */* 18 */* 19 */A. n B. i C. n-1 D. i-1 E. n-i F. n-i-1 G. n-i+1 H. i-n I. i-n+12. 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到R对?(R为给定的正整数)。下面的程序输入一个正整数R,输出“至少

23、到第几个月时,兔子总对数才能达到R对。”例如:输入30,输出“至少第 9 个月才有 30 对兔子。” 【知识点:难度:3正确答案:(1)F (2)A (3)C】/* 1 */ #include "stdio.h"/* 2 */ main()/* 3 */ /* 4 */int month=1, R, R1=1, R2=0, R3=0;/* 5 */scanf("%d", &R);/* 6 */while( R1+R2+R3 < R ) /* 兔子数量未达到给定的量,继续计算下个月的值 */* 7 */ month+; /* 8 */R3 = _(1)_; /* 9 */ R2 =_(2)_; /* 10 */ R1 = _(3)_; /* 11 */* 12 */printf("至少第%d 个月才有 %d 对兔子。n", month, R1+R2+R3 );/* 13 */ A. R1 B. R2 C. R3 D. R1+R2 E. R1+R3 F. R2+R3 G. R3-R1 H. R3-R2 I. R2-R13. 给定一个整数序列

温馨提示

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

评论

0/150

提交评论