C程序设计基础复习题

上传人:无*** 文档编号:68247518 上传时间:2022-04-02 格式:DOC 页数:9 大小:123KB
收藏 版权申诉 举报 下载
C程序设计基础复习题_第1页
第1页 / 共9页
C程序设计基础复习题_第2页
第2页 / 共9页
C程序设计基础复习题_第3页
第3页 / 共9页
资源描述:

《C程序设计基础复习题》由会员分享,可在线阅读,更多相关《C程序设计基础复习题(9页珍藏版)》请在装配图网上搜索。

1、c语言规定,任何非0的数像1-1等都被认为是真,而0被认为是假11为假试题一、单选题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)&(m=k)4. 已知 int x=5; 表达式6x1值是

2、_。【知识点:难度:正确答案:A】A0B1C5D表达式语法错表达式6x1 ,先判断6x 为0,再判断01,所以值为0。(6x 为1 ,再判断11,所以值为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】AdBcC100D不确定7. 设m,n已正确定义,执行语句for(m=0, n=10; mn; m+=3,n-);以后

3、,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 = ABCDE; puts(s)Bchar s5 = A,B,C,D,E; puts(s);Cchar *s; s = ABCDE; puts(s);Dchar *s;

4、 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没有实际意义D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果11. 若有定义:int a=2, b=5, c=8; 则表达式c |= (a & b)

5、 !(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 C7D0逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗号表达式的值。而b=a!=7的值为0逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行14. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行语

6、句(m=ab)&(n=cd);后n的值是_。 【知识点:难度:3正确答案:A】A2 B1 C0D3&和&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&还具有短路的功能,即如果第一个表达式为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; bre

7、ak; 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) static int k; return +k + x;main( ) int k; for(k=1; k4; k+) printf(%d#, f(k) );A2#5# B3#6# C2#4#6#D不确定17. 下列程序的输出结果是_。 【知识点:难度:2正确答案:D】main() char x=040;printf(%on,x0)z=0;

8、 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(x0)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) ); A1 #define定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会

9、自动加括号,因此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!(表示回车),则下面程序的运行结果是_。【知识点:难度:2正确答案:C】main()char c;int v1=0,v2=0;doswitch(c=getchar()case a: case A: case e: case E: case i: case I: case o: case O:case u: case U: v1+=1;default: v1+=1;v2+=1; wh

10、ile( c != n ); printf(%d,%dn, v1, v2);A6,10 B21,10 C22,10D6,921. 下列程序段输出 _。【知识点:难度:4正确答案:D】main() char str25 = 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(n10) printf( %1d, n ); el

11、se 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; istrlen(st); i+) fputc(sti, myf);fclose(myf);void main() fun(test_, C_); fun(test_, is_fun);AC_is_fun Bis_fun Ctest_is_funDC_试题二、程序阅

12、读题1. 以下程序的输出结果是_。【知识点:难度:3正确答案:C】main()char ch25= 1234, 5678 , *p2;int i,j,s=0;for(i=0; i2; i+)pi= chi;for(i=0; i 0; j+=2)s=10*s + pij- 0;printf(%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,

13、 &dt2, 80, &dt3 ;main() p=aa;printf(%d, +p-x); printf(%d, +p-x); printf(%d, + (*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; kn; k+)

14、 printf(%d#, aak);A21#42# B3#7# C 3#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. 如果

15、已经有了有关的定义,则下列程序的输出结果为_。【知识点:难度:4正确答案:C】main() int i, n=7; char b7, *a = January, February, March, April, May, June, July ; f(a, n);for (i=0; i= i ) bi=*(ai+i); bi=0;printf(%sn, b);void f(char *a, int n) int i, j;char *temp; for( i = 1; i n; i+) for (j = 0; j 0) swap(&aj, &aj+1);void swap(char *s1, c

16、har *s2)char *temp;temp=*s1; *s1=*s2; *s2=temp;AJeri BJuyichay C AenyD JFMAMJJ试题三、程序(段)填空题1. 下面的程序输入n ( 1=n=10),打印出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 */ m

17、ain()/* 3 */ /* 4 */int i, j, n, a1010;/* 5 */scanf(%d,&n);/* 6 */for( i=0; in; 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; in; i+)/* 13 */* 14 */ for(j=0; j_(3)_; j+) pri

18、ntf( ); /* 打印前导空格 */* 15 */for(j=0; j=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为给定的正整数)。下面的程序输入一个

19、正整数R,输出“至少到第几个月时,兔子总对数才能达到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

20、)_; /* 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. 给定一个整数序列(整数允许是负数,但至少有一个非负整数):a1, a2, ., ai, ., aj, ., an。设Sij = ai+.+aj (1=i=j=n),如果Suv = maxSij,那么就称au,av是原来序列的最大连续子序列。下面程序入整数个数n(

21、n=100)和n个整数序列ai,输出最大连续子序列的和值MaxSum。例如,输入8和8个整数2 -3 5 -2 -1 2 6 -2,输出最大连续子序列5 -2 -1 2 6的和值10。【知识点:难度:4正确答案:(1)B (2)F (3)H】void main( ) int n, A101; int ThisSum, MaxSum, i, j; /*-输入n个整数,并求最大连续子序列之和值MaxSum-*/ scanf(%d, &n); for( i = 0; i n; i+ ) /* 输入n个整数 A i */ scanf(%d, &Ai); MaxSum = 0; /* 初始化最大和值 */ for( i = 0; i n; i+ ) /* 从 A i 开始 */ ThisSum = 0; for( j = _(1)_; j MaxSum ) MaxSum = ThisSum; /* 更新最大和值 */ /* end for-j */ /* end for-i */ printf(%dn,MaxSum); A. Ai B. Aj C. An D. 0 E. 1 F. i G. j H. n I. n-iC程序设计基础及实验

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