




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. c 语言程序设计复习参考资料一选择题1以下关于运算符优先顺序的描述中正确的是(c )。a 关系运算符 算术运算符 赋值运算符 逻辑与运算符b逻辑运算符 关系运算符 算术运算符 赋值运算符c赋值运算符 逻辑与运算符 关系运算符 算术运算符d算术运算符 关系运算符 赋值运算符 逻辑与运算符2下列选项中合法的变量名是_c_a #defineb intca594_3d abs(x)3以下正确的描述是(a)。a break 语句的作用是结束整个循环的执行b 在 c 程序中 ,注释说明只能位于一条语句的后面c 在循环体内使用break 语句或 continue 语句的作用相同d 从多层循环嵌套中退出时
2、, 只能使用goto 语句4以下说法正确的是(c)a #define 和 printf都是c 语句。b #define 是 c 语句,而printf 不是。c若程序中要调用数学函数,必须在文件开头输入语句#include “ math.h”d #define 和 printf都不是c 语句。5下面的函数定义正确的是_d_a ) floatfun (float x ; float y)return x*y;b ) floatfun (float x,y)return x*y;c) floatfun (x,y)int x,y;return x*y;d) intfun (int x, int y)r
3、eturn x*y;6执行下面语句后的输出为( d )inti=-1;if (i=0|b=0)&(a0|b=0&b=0)|(a0&b0)&(a+b0)&(a-b = y & cha&!y)的值是(c)a) 0b) 语法错c) 1d) 假 17下列关于单目运算符+、 -的叙述中正确的是(b)a) 它们的运算对象可以是任何变量和常量b) 它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量 c) 它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量d) 它们的运算对象可以是 char 型变量、 int 型变量和 float 型
4、变量18下面的程序( b )void main() int x=3; do printf( “n%d” ,x-=2); while(!(-x);a). 输出的是 1b). 输出的是1 和 -2c). 输出的是3 和 0d). 是死循环19如下程序:void main( ).int a=6; printf( “ %dn ” ,(a+=3,2*a);执行后,输出结果是(d)a) 9b) 6c) 2d) 1820若有以下说明和语句,请选出哪个是对c 数组元素的正确引用( d )int c45, (*cp)5; cp=c;a). cp+1b). *(cp+3)c). *(cp+1)+3d). *(*c
5、p+2)21下面程序的输出是( b )main() int x=023; printf(%dn, -x); a). 17b). 18c). 23d). 2422执行下列程序的结果是( b )main() float x=1,y; y=+x*+x; printf(n” ,y);“a).9.000000b).6.000000c).1.000000d). 程序有错误23下面程序的输出是( a )main() int a10=1,2,3,4,5,6,7,8,9,10, *p=a; printf(%dn, *(p+2) ); a). 3b). 4c). 1d). 224执行下面程序中的输出语句后,a 的
6、值是 ( b )main() inta;printf(%dn, (a=3*5,a*4,a+5) ); a). 65b). 20c). 15d). 1025下面程序的输出是( c )main() int a=-1, b=4, k;k=(a+=0)&(!(b-=0); printf(%d %d %d n, k, a, b ); a). 0 0 3b). 0 1 2c). 1 0 3d). 1 1 226设有如下的程序段:charstr=hello; char*ptr; ptr=str;执行完上面的程序段后,*(ptr+5) 的值为 ( c )a). 0b). 0c). 不确定的值d). 0 的地址
7、27在宏定义 # define pi 3.14159 中 ,用宏名 pi 代替一个 ( c )a). 单精度数b). 双精度数c).常量d). 字符串28若 i 是整型变量,pb 是基本型为整型的指针变量,则正确的赋值表达式是(a )a). pb=&ib). pb=ic). *pb=&id). *pb=*i29有以下程序段int m=0,n=0;charc= d;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);.若从键盘上输入:6d6,则输出结果是(c)a) 0,d,6b) 6,d,6c) 6,d,6d) 6,d,030 printf ()函数中用
8、到格式符 %-7s ,其中数字 7 表示输出的字符串占用 7 列。如果字符串长度小于 7,则输出按方式 ( a )a) 从左起输出该字串 ,右补空格b) 按原字符长从左向右全部输出c) 右对齐输出该字串 ,左补空格d) 输出错误信息31以下能正确地定义整型变量a,b 和 c 并为其赋初值3 的语句是(a)a) int a=3,b=3, c= 3;b)int a,b, c= 3;c) a= 3,b=3,c=3;d)a= b= c=3;32以下程序的输出结果是(d)void main( )intx=6,y=6,i;for(i=2;x4;y=+i)printf(%d,%d,x-,y);a) 5,5
9、5,3b) 6,62,3c) 6,55,2d) 6,65,333以下程序的输出结果是( b )void main( )intw=4;int fun(intk);fun(w);printf(n);fun(intk)if(k0) fun(k-1);printf(%d ,k);a) 4 3 2 1b) 0 1 2 3 4c) 1 2 3 4d) 4 3 2 1 034下面程序的输出是( b )main() intx=023;printf(%dn, -x); a). 17b). 18c). 23d). 2435以下程序的输出结果是( c )main() char ch34= 123,456,78,*p
10、3; inti;for(i=0;i3;i+) pi=chi;for(i=0;i3;i+) printf(%s,pi);a). 123456780b). 123 456 780c). 12345678d). 14736下面程序的输出结果为( b ).char*alpha6=abcd,efgh,ijkl,mnop,qrst,uvwx;char*p;void main( )inti; p=alpha;for(i=0;i4;i+)printf(%c,(*p)i);printf(n);a). eimcb). abcdc). efghd). aeim37根据下面的定义,能打印出字母m 的语句是 ( d )
11、structpersonchar name9; int age;structpersonclass10= john,17, paul,19,mary,18, adam,16 a). printf(%cn,);b). printf(%cn,1);c). printf(%cn,1);d). printf(%cn,0);38有以下程序void main( ) int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2) k=k+pi; i+; printf(%dn,k);执
12、行后输出结果是(d)a) 58b) 56c) 45d) 2439以下程序的输出结果是(a )void main( ) inti,x33=9,8,7,6,5,4,3,2,1,*p;p=&x11;for(i=0;i6;i+=3)printf(%d ,pi);a) 5 2b) 5 1c) 5 3d) 9 740以下程序的输出结果是( a )# include void main( ) char *a=” abcdefghi” ;voidfun( char *s );fun(a);puts(a);voidfun(char *s ) int x,y;.char c;for(x=0,y=strlen(s)
13、-1;xy;x+,y-) c=sy;sy=sx;sx=c; a). ihgfedcbab). abcdefghic). abcdedcbad).ihgfefghi41 void main( )int i,a=5,6,9,11;for (i=0;i4;i+) if (ai%2=0)continue;printf(%d,ai);执行后输出结果是(c)a) 编译出错b 6c) 5 9 11d) 5 6 9 1142以下对数组的定义正确的是(d)a ) int x(10);b ) int x5=0,1,2,3,4,5;c) int n=10; xn;d ) int x = 0,1,2,3,4;43.
14、以下叙述中不正确的是(b)a ) switch 是多分支结构语句b) continue 语句的作用是使程序的执行流程跳出包含它的所有循环c)break 语句只能用在循环体内和switch 语句体内d) 在循环体内使用break 语句和 continue 语句的作用不相同44如下程序:void main() int i=1,j=2,k=3;if(j+| k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是 (d)a) 1 , 2, 3b) 2, 2, 4c) 2, 3, 4d) 2 ,3, 345以下叙述中,不正确的是(c )a ) 算法应该具有有穷性、确定性以及有效性
15、等特点b) 算法可以用传统流程图、 n-s 流程图以及伪代码等形式来描述c)基本结构只有顺序、选择、循环3 种结构d) 结构化程序设计的思想是自顶向下、逐步细化、模块化设计以及结构化编码46在 c 语言中,函数返回值的类型最终取决于(d)a)函数定义时形参的类型b)return 语句中表达式值的类型c) 调用函数时主函数所传递的实参类型d) 函数定义时在函数首部所说明的函数类型47以下程序的输出结果是( c )void main()inti;for(i=a;iname49下面的程序输出是( b )intm=13;intfun2(intx,inty)intm=3;return(x*y-m);ma
16、in()inta=7,b=5;printf(%dn,fun2(a,b)/m);a). 1b). 2c). 7d). 1050下面的程序输出是( a )main() int x=100,a=10,b=20,ok1=5,ok2=0; if(ab)if(b!=15)if(!ok1)x=1; elseif(ok2) x=10;x=-1;printf(%d n, x ); a). -1b). 0c). 1d). 不确定的值51若有以下定义:inta =1,2,3,4,5,6,7,8,9,10, *p=a;则值为 3 的表达式是(a )a). p+=2,*(p+)b). p+=2,*+pc). p+=3,
17、*p+d). p+=2, +*p52下面程序的输出是( a )int aa33= 2,4,6 ;void main()inti, *p=&aa00;for(i=0;i2;i+) if(i=0).aaii+1= *p+1;else+p;printf(%d, *p ); a). 23b). 26c). 33d). 3653下面程序的输出是( d )voidprtv(int*x) printf(%dn, +*x ); void main() int a=25; prtv(&a); a. 23b. 24c. 25d. 2654以下程序的运行结果是 ( b )void main( )chara10=1,
18、2,3,4,5,6,7,8,9,0;char*p;inti=8;p=a+i;printf(%sn,p-2);a) 6b) 789c) 6d) 67855执行以下3 条语句之后,则k 的值是 _c_int x=4,y=7 ; x+ ;y+=2 ;k=y%x;a ) 1b )2c) 4d ) 356以下程序段for ( k = 0, m = 4; m ; m - = 2 )for( n = 1; n 4 ; n+)k+;循环体语句”k +; ” 执行的次数是_c_a ) 16b) 12c) 6d ) 857在 c 语言中 (以 16 位 pc 机为例 ),5 种基本数据类型的存储空间长度的排列顺序
19、为(c)a) char=int1ongint=floatdoubleb) charint1ongint=float=doublec) charint 1ong int=floatdoubled) char=int =1ong int=float=1)& (x =50)& (x=1)| (x=50)| (x=1)& (x= 50)& (x =1)| (x =50) | (x=60).61以下程序的输出结果是( d )# include main() char *p1,*p2,str50=abcdefg; p1=abcd; p2=efgh; strcpy(str+1,p2+1); strcpy(s
20、tr+3,p1+3);printf(%s,str);a). afghdefgb). abfhdc). afghdd). afgd62以下程序的输出结果是( a )main()inti;for(i=1;i=10or a=10|a=10&a=10 & ab?(bc?1:0):0 ;功能等价的是(a)a if(ab) &(bc) ) k=1;bif(ab) |(bc) )k=1elsek=0;c if(ab)k=1;else if(bc)k=1;else k=0;65.设 int x=2,4,6,8,y,*p=&x1;则执行语句y=(*-p)+; 后数组元素x0 的值为(b).a. 2b. 3c.
21、4d.566在下面关于函数的描述中错误的是(d)a 在一个源文件中,如果函数定义在先,调用在后,则不必声明该函数b如果一个函数在一个源文件里定义,而调用在另一个源文件中,则必须在调用之前声明该函数c函数的声明应使用函数原型d在一个源文件中,如果自定义函数调用在先,定义在后,则不必声明该函数67. 若有 int a34=1,2,3,4,5,6,7,8,9,10,11,12; int (*q)3=a;*q=a0;则能够正确表示数组元素a12 的表达式是(c)。a. *(*q+1)2b. *(*(q+5)c. *(*(q+1)+2)d. (*q+1)+268设 int x=1,3,5,7,9,11,
22、13,*p=x;则不能正确引用数组元素的表达式是(b)a.*(p-)b. *(-p)c.*(p+)d.*(+p)69. 有以下函数char *fun(char *p).return p;该函数的返回值是(b)a.无确切的值b. 形参 p 中存放的地址值c. 形参 p 自身的地址值d. 编译有错70. 在下面的引用定义中,正确的是(b)。a.int x,&y;y=x;b. int x,&y=x ;c.int &y=x,x;d. float z;int x,y=&z;71执行下面程序段后,a 的值为(c)。int a,b;for(b=1,a=1;b=10) break;if (a%2=1) a+=
23、5; continue;a-=3;a. 2b. 6c.10d. 872. 执行下列程序段后 ,变量 i 的值为( b )。#define ma(x,y)(x)*(y)inti=5;i=ma(i,i+1)-7;a.30b. 23c.19d. 173.若有以下的说明:structpersoncharname20;intage;charsex;a=li ning,20,m,*p=&a;则对字符串li ning 的引用方式不可以是( b )a. (*p).nameb. c. d. p-name74. 若程序中定义了以下函数doublemyadd(double a,double
24、b) return (a+b) ;并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 (a)a. double myadd(double a,b) ;b. double myadd(double,double);c. double myadd(double b,double a) ;d. double myadd(double x,double y);75.若有以下的说明和语句,则在执行 for 语句后 ,*(*(pt+1)+2)表示的数组元素是( c )intt33,*pt3,k; for(k=0;k3;k+)ptk=&tk0;.a. t20b. t22c. t
25、12d. t2176在 c 语言中, 080 是(d)a 八进制数b 十进制数c十六进制数d 非法数77. 整型变量i 定义后赋初值的结果是(b )。int i=2.8*6 ;a 12b 16c 17d 1878 for(i=0,x=0; !x&i=3;i+)循环的次数为(a)a 4b 5c 1d 无限循环79若有如下程序段: int a=2,b=-1,c=2; if (ab)if (b0) c=0;else c+=1;cout ” c=” c0 ;d. i+;82以下不能对二维数组a 进行正确初始化的语句是(c)a int a23=0;b int a 3=1,2 ,0 ;cint a23=1
26、, 2 ,3 , 4 , 5 , 6 ;d int a 3=1 , 2, 3, 4, 5, 6 ;83以下合法的if 语句是(d)。a. if(a=b) c+;b. if(ab) c+;c. if(a=b) c+;d. if(a=b) c+;84字符串常量“i love china ”在内存中存在需要(c)字节。注:每个单词之间有一个空格。a 10b 12c 13d 14二填空题1 c 语言源程序的扩展名为.c,可执行文件的扩展名为_ 。 .exe2数组inta35; 共定义了 _个数组元素。153 c 程序由函数构成,c 程序总是从 _开始执行 .main()4 c 语言中,用 _ 关键字来
27、包含如stdio.h 之类的头文件。include5函数的返回值是通过函数中的_ 语句来获得的。return6至少执行一次循环体的循环语句是。do while语句7对于不带返回值的函数,应当用关键字_定义函数。 void8多分支结构的程序,通常选用_语句来实现。switch9若 char ch=25yi6 有以下语句,则编译后分配给数组ch 的内存占用的字节数为_。6.10下面运算符 , + = 按照优先级从高到低排列顺序为_。+ & |18 getchar( ) 函数的功能是。从标准输入设备读取下一个字符19写出下面表达式的值6*4/7+8%3_5x=5 ; y=2; (x+)+y_78-4
28、=5+3_064-2 ? 4%2: 3_ _ _0x=2,y=2; x|!y_1x=3 ; x+=x-=2_220下面 invert 函数的功能是将一个字符串str 的内容颠倒过来,请填空。# include void invert(char str ) int i, j,;kfor(i=0,j=strlen(str); ij; i+,j- )-1 k=str i ; str i =str j ;strj=k;21下列程序是用递归的方法计算fun(5)*10 的值。其中fun(k)=fun(k-1)*k,当 k=0 时,fun(0)=3 。请填空完成程序。#include void main(
29、)【 1】int fun(int);coutfun(5)*10=3+4|64&25的结果为【 5】 1或真29 n表示【 6】字符。.“ i=%d j=%d m=%dn” ,i,j,m);.三程序阅读题1以下程序的运行结果是_1#include void main()int m=3;if(-m3)printf( %dn,-m);elseprintf(%dn,+m);2执行下面程序段后, 输出结果是 _ i=6 j=3 m=7#include int i=2 ;int fun(int x) int k,j=1; i=x*2; k=i+j;return k;void main( ) int m,j
30、=3; m=fun(j);printf(3下面程序的输出是_ 12void main( )intarr10,i,k=0;for(i=0;i10;i+)arri=i;for(i=1 ; i4;i+)k+=arri+i;printf(%dn,k);4下面程序的输出结果是_234567#include #include #definemax_count6voidfun();void main( )intcount;for(count=1;count=max_count;count+)fun();voidfun()staticint i;i+=2;printf(%d,i-);.5下面程序的输出是_6v
31、oid main()inta =2,4,6, *ptr=&a0;intx=8, y, z;for(y=0;y3;y+)z=(*(ptr+y)x) ?*(ptr+y) : x;printf(“n%d” , z);6下面程序的输出是_12main()intarr10,i,k=0;for(i=0;i10;i+)arri=i;for(i=1;i4;i+)k+=arri+i;printf(%dn,k);7下面程序的输出结果是_24intt(intx,inty,intcp,intdp) cp=x*x+y*y; dp=x*x-y*y; void main( )inta=4,b=3,c=2,d=4;t(a,b
32、,c,d);printf(%d %dn,c,d);8下面程序的正确运行结果是_str =abdefvoid main() static char str =” abcdef ”;void abc(charstr );abc(str);printf(“ str =%sn” , str);void abc(charstr ) int a,b;for(a=b=0;stra!=0 ;a+)if(stra!= c)strb+=stra;strb=0;9下面程序的输出结果是_10int fun(int *x,int n)if(n=0).return x0;else return x0+fun(x+1,n-
33、1);void main( )int a=1,2,3,4,5,6;int k=fun(a,3);printf(“n%d” ,k);10执行下面程序段后, 输出结果是 _i=6,x=10void main( )inti,x;for(i=1,x=1;i=10 )break;if(x%2=1)x+=5;continue;x-=3;printf(“ i= %d, x=%dn” , i, x);11下面程序的执行结果是_ 235789#include void main() int a6=2, 5,7, 3, 9, 8;int i,j,t;printf(n);for (j=0;j5;j+)for (i=
34、0;iai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i6;i+)printf(%d,ai);12下列程序执行后,输出的结果是_4# include fun(int a) int b=0; static int c=3; a=c+,b+; return(a); void main()inta=2, i, k;for(i=0;i2;i+) k=fun(a+);printf“ %dn” , k);13下面程序若从键盘输入:ref6ugcbdt8e, 按回车键,最后的执行结果是_ n=2m=4.#includevoid main ( ) int m=0,n=0;charc;while ( (c=getchar( ) )!=n )if (c=a & c=0 & c=9)n+;printf(n=%dm=%dn, n,m );14下面程序的执行结果是_74#include struct student int num;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影像管理示教平台技术要求
- 油气管道安装工技师模拟习题含答案
- 优化住宅物业管理方案
- 餐饮联营品牌授权合作协议范本
- 智能家居产品场地适配与必要性论证合同
- 企业团队合作课件
- 装修验收要求方案
- 餐饮品牌加盟权转让与经营管理协议
- 营地项目定价方案
- 高端制造业劳动合同范本定制与实施合同
- 【公开课】三角形的边+课件+2025-2026学年人教版八年级数学上册
- 2025年广东省普通高中学业水平合格性考试模拟一历史试题(含答案)
- 【公开课】+分子动理论的初步知识(教学课件)2025-2026学年初中物理人教版(2024)九年级全一册
- 设备安全培训
- 2025年4月自考03346项目管理试题
- 2024年度医患沟通课件
- 避难硐室使用说明书
- 九宫格数独题目(打印版)
- 第二类医疗器械授权委托书
- 初中语文活动·探究单元教学研究综述
- 七年级期末考试数学质量分析
评论
0/150
提交评论