1、11自动化C程序设计复习资料C程序设计辅导资料 一、填空题1、C语言程序是函数构成的,其中有且只有1个 主 函数,程序的的执行总是从该函数开始。2、在C语言中,正确的标识符是由 字母、数字和下划线 组成的。3、定义一个符号常量PI,其值为3.1415926,格式是 #define PI 3.1415926 。4、结构化程序设计的三种基本结构是顺序结构、选择结构和 循环结构 。5、下面运算符 % + = 按照优先级从高到低排列顺序为_+,%,15&6525|8875的值 1 。9、写出表达式6665&6585|8595的值 1 10、表达式 (int)(20+2.5*3+6+5.3) 的值是 3
2、8 。11、表达式m = a b ? ab : b5 当a=15,b=11时,m的值为: 26 ; 12、用条件运算符写出求两个整数x,y中大数的表达式 z xy?x:y 。13、写出下面表达式的值 3*5/7+7%3 _3_ 3+4=7-10 _1_ x=2,y=2;+x|+y _1_ 14、执行语句“for(j=15 ;j =5 ;j- );”后,变量j的值为 4 。15、执行语句“for(s=0,j=5 ;j3?2:13、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与(C )组成配对关系。A. 缩排位置相同的if B. 在其之前未配对的ifC. 在
3、其之前未配对的最近的if D.同一行上的if4、下列语句不具有赋值功能的是(C)Aa*=b Bx=1 Ca+b Da+5、若有以下定义和语句:int a,b,c;scanf(“ %d %d %d”,&a,&b,&c);为了使1,3,2分别赋给a,b,c,从键盘上输入数据的正确形式是( A )A 1 3 2 B 1,3,2 C a=1b=3c=2 D a=1,b=3,c=26、设a为存放整型的一维数组,如果a的首地址为P,那么a中第i 个元素的地址为(C )。AP+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i7、在C程序中有如下语句:char func(int x,int
4、 y); 它是(C )。 A. 对函数func的定义。 B. 对函数func的调用。 C对函数func的原型说明。 D. 不合法的。8、下列描述中不正确的是(C )。A. 字符型数组中可以存放字符串。B. 可以对字符型数组进行整体输入、输出。C. 可以对整型数组进行整体输入、输出。D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。9、不能把字符串:Hello!赋给数组b的语句是(B )。A. char b10=H,e,l,l,o,!; B. char b10; b=Hello!;C. char b10; strcpy(b,Hello!); D. char b10=Hello!
5、;10、表达式y=(132122?152:67?18:9)的值为_C_ 。 A 9 B 7 C 152 D. 1811、以下程序的输出结果是 ( D ) #include main() int i,j,k,a=3,b=2; i=(-a=b+)? - -a:+b; j=a+;k=b; Printf(“i=%d,j=%d,k=%dn”,i,j,k); (A)i=2,j=1,k=3 (B)i=i,j=1,k=2(C)i=4,j=2,k=4 (D)i=1,j=1,k=312、一个C语言的源程序中 ( C ) (A)必须有主函数和其它函数 (B)可以有多个主函数(C)必须有一个主函数 (D)可以没有主函
6、数13、有下列结构体,对该结构体变量stu的成员项引用正确的是(B) struct student int m; float n; stu ,*p; A stu.nm Bp-m C*p.m Dp.stu.n14、写出程序的运行结果 ( A ) void main() int n; for(n=1;n=y)&(y=z) B(x=y)AND(y=z) C)(x=y=z) D)(x=y)&(y=z) 26、 设有如下定义: int x=10,y=3,z; 则语句 printf(%dn,z=(x%y,x/y); 的输出结果是_D_ A)1 B)0 C)4 D)3 27、以下关于if语句的错误描述是(
7、A)A)条件表达式可以是任意的表达式B)条件表达式只能是关系表达式或逻辑表达式C)条件表达式的括号不可以省略D)与else配对的if语句是其之前最近的未配对的if语句28、以下程序的输出结果是( B )void main( ) int m=5; if(m+5) printf(%dn,m); else printf(%dn,m- -); A、7 B、6 C、5 D、429、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( C)A、c=b=a; B、(a=c)|(b=c); C、(a=c)&(b=c); D、a=c=b;30、当执行以下程序段时(A)x=-1;do x=x*x;wh
8、ile(!x);A、循环体将执行一次 B、循环体将执行两次C、循环体将执行无限次 D、系统将提示有语法错误31、已知有语句:for(x=0,y=0;(y!=123)(xb?(ac?a:c):(b)); A、6 B、5 C、4 D、不确定33、以下程序段循环体的执行次数是( B)void main( ) int i,j; for(i=0,j=1;i=j+1;i+=2,j-) printf(%dn,i); A、0 B、1 C、2 D、334、在说明语句中有:float (*fp)( );则fp代表的是:( C ) A 一个用于指向一维数组的行指针; B 一个返回值为实型的函数名; C 一个用于指向
9、函数的指针变量; D 一个指向实型数据的指针;35、break语句的正确的用法是(B )。A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。 B. 在多重循环中,只能退出最靠近的那一层循环语句。C. 跳出多重循环。D. 只能修改控制变量。36在函数中默认存储类型说明符的变量应该是_C_存储类型。 A内部静态 B. 外部 C自动 D. 寄存器37以下叙述中正确的是_A_。A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行定义38以下选项中合法的用户标识符是_B_。A) long B
10、) _2Test C) 3Dmax D) A .dat39已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_C_。A) scanf(%2d%2d%2d,&i,&j,&k);B) scanf(%d %d %d,&i,&j,&k); C) scanf(%d,%d,%d,&i,&j,&k); D) scanf(i=%d,j=%d,k=%d,&i,&j,&k);40已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是 D 。A) putchar(A+1); B) putchar(
11、b-32); C) putchar(98-32); D) putchar(B);41下列程序段的输出结果是 A 。float x; x=1+1%3*5/2; printf(%f,x);A) 3.000000 B) 3 C) 3.500000 D) 842设int a=1,b=2,c=3,d=4,z;则表达式 (ab)? (z=c) : (z=d) 的值是 C 。 A) 3 B) 0 C) 4 D) 143下列程序段的输出结果是 B 。int a=5;if( a+ 5 ) printf(%dn, a );else printf(%dn, a- ); A) 7 B) 6 C) 5 D) 444运行
12、下列程序段,输入AaBbDd并以回车键结束输入,则输出结果是 B 。char ch; int s=0; while(ch=getchar()!=n) switch(ch) case A: s+; case B: s+; break; case D: s+; default: s+; printf(%dn,s); A) 6 B) 8 C) 10 D) 1245下列程序段的输出结果是 A 。int i,s=0;for(i=1;i=0;i-=2) s=s*10+ai;printf(%dn,s); A) 4321 B) 42 C) 1234 D) 1348. 用数组名作为函数调用时的实参,实际上传送给
13、形参的是 A A) 数组首地址 B) 数组的第一个元素值C) 数组中全部元素的值 D) 数组元素的个数49已知一个函数定义为: void func( ) 则void的含义是 A 。 A) 执行该函数后没有返回值 B) 执行该函数后不返回 C) 该函数可以返回任意类型的数据 D) 该函数返回整型数据50定义函数时,如果省略函数的存储类型和数据类型,则默认的存储类型和数据类型分别是 A 。A) auto和int B) extern和int C) auto和viod D) extern和void51若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是 D 。A) a,
14、point,*&aB) &*a,&a,*pointC) *&point,*point,&aD) &a,&*point ,point52若定义函数float *f(int x),则函数的返回值是 B 。A) 一个实数B) 一个指向实型变量的指针C) 一个指向实型函数的指针D) 一个指向整型变量的指针53根据下面的定义,能打印出字母M的语句是( C )。struct person char name9;int age; ;struct person c10=John,17,Paul,19,Mary,18,Adam,16; A)printf(%c,c3.name); B) printf(%c,c3.
15、name1); C) printf(%c,c2.name0); D) printf(%c,c3.name0);54若有以下的说明。struct personint name20;int age;char sex;a=li ning,20,m,*p=&a;则对字符串li ning的引用方式不可以是( B )A)(*p).name B)p.name C)a.name D)p-name 55、以下正确的描述是 B 。在C语言程序中:A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套
16、56、以下正确的说法是 B 。建立函数的目的之一是:A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存57以下错误的描述是_ B_。 A、break语句不能用于循环语句、switch语句外的任何其它语句B、在switch语句中使用break语句或continue语句的作用相同C、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环D、在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环58已知有声明“char *s=”happy birthday”,t10;”,要求将s指向的字符串中“birthday”子串复制到t数组
17、中并输出t数组中的字符串,正确的操作的是 B 。 A.puts(strcpy(t,s); B. puts(strcpy(t,s+6); C. puts(strcat(t,s); D. puts(strcat(t,s+6);59已知有数据类型定义及变量声明如下:struct int a; struct char name10;b;s=1,”mark”,*ps=&s;则以下选项中能够输出“mark”的语句是 C 。A.puts(name); B.puts(b.name) C.puts(s.b.name); D.puts(*p.b.name);三、阅读程序题(1) 阅读下列程序:void main(
18、) static int a3=9,7,5,3,1,2,4,6,8; int i,j,s1=0,s2=0; for (i=0;i3;i+) for (j=0;j3;j+) if (i=j ) s1=s1+aij; if (i+j=2) s2=s2+aij; printf (“%dn%dn”,s1,s2); 程序的输出结果:18 10(2) 阅读下列程序:void main() int x , y = 25 ; x = 5 + 5 * 5 + y ; printf ( x = %d y=%d n , x , y ) ; x = 10 + 2 * 3 7 ; y = y +10 + 2 * 3 ; printf ( x = %d y=%d n , x , y ) ; x = (y + 6 ) % 5 + y ; y = x + y ;printf ( x = %d y=%dn , x , y) ; 程序的输出结果:x=45 y=25 x=9 y=41 x=43 y=84(3) 阅读下列程序:include “ stdio.h ”void main ( )int i;int count (int i );for ( i = 10 ; i 16 ; i=i+2)count( i ) ;int count ( int n) static int x =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1