1、一、 单项选择题(每小题1分,共35分)1、一个C程序的执行是从( )。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2、下面四个选项中,合法的用户标识符是( )A)P_#$ B)2ha C)goto D)_ab3、要把整数67523赋与整型变量I,则应说明I的类型是( ) A) int B) long C) short D) unsigned4、已知int I; float f; 正确的表达式是( )A) (int
2、 f)%IB) int(f)%IC) int (f%I)D) (int)f%I5、判断char型变量c1是否为小写字母的正确表达式是( )A)a=c1=a) & (c1=z) C)98=c1 D)c1=a& c1 x ) & ( b = y z ) ; A)6 B) 0 C) 1 D) 48、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )。A)int a=b=c=5; B)int a,b,c=5; C)int a=5,b=5,c=5; D)a=b=c=5;9、已知:char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类
3、型是( )A) intB) charC) floatD) double10、已知字母A的ASCII码为65,以下程序段的输出结果是( ) char c1=A,c2=Y; printf(%d,%d,c1,c2); A)65,90 B)A,Y C)65,89 D)输出格式不合法11、阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为( )。(“CR”表示回车)main( ) int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%dn”,x+y+z); A、x+y+z=48 B、x+y+z=35 C、x+z=35 D、不确定值12、
4、以下错误的if语句是( ) A) if(xy); B) if (x=y) x+=y; C) if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y) D) if (xy) x+;y+; 13、阅读以下程序:main( ) int x; scanf(“%d”,&x); if (x-5)printf(“%dn”,x); else printf(“%dn”,x+);程序运行后,如果从键盘上输入5,则输出结果是( ) A、3 B、4 C、5 D、614、C语言对嵌套if语句的规定:else总是与( )配对。 A) 其之前最近的ifB)第一个if C)缩进位置相同的if
5、D)其之前最近的且未配对的if 15、以下错误的描述是( ) A) break语句不能用于循环语句和switch语句外的任何其它语句 B)在switch语句中使用break语句或continue语句的作用相同 C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止循环 D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 16、若int I=10;执行下列程序后,变量I的正确结果是( ) switch(i) case 9 : I+=1; case 10 : I+=1; case 11 : I+=1; default : I+=1; A) 10B) 11C)
6、 12D)13 17、C语言中while 与do - while语句的主要区别是 ( )A)do -while的循环体至少无条件执行一次B)do -while允许从外部转到循环体内C)do -while的循环体不能是复合语句18、以下的for循环( )for ( x = 0 , y = 100 ; (y! = 123 ) & (x 3) ; x + + ) ;A)执行3次 B)执行4次 C)循环次数不定 D) 是无限循环19、执行”for(I=1;I+4; ) ;”后,变量I的值为( ) A)3B) 4C) 5D) 不定 20、以下程序段( )x = -2 ;do x = x * x ; wh
7、ile ( !x ) ;A 是死循环 B循环执行两次 C循环执行一次 D有语法错误21、设x和y均为int型变量,则执行下面循环后,y的值为( )。for( y=1,x=1;y=50;y+) if(x=10) break; if(x%2=1)x+=5;continue; x-=3;A)2 B) 4 C) 6 D) 822、以下程序的输出结果是( ) main() int I,j,x=0; for (I=0;I2;I+) x+; for(j=0;j8;y=+I) printf(“%d,%d”,x-,y); A) 10,1 9,2B) 9,8 7,6C) 10,9 9 ,0D) 10,10 9,1
8、 24、以下正确的描述是( )。在C语言程序中:A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套25、以下正确的说法是( )。建立函数的目的之一是:A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存26、以下正确的说法是( )。用户若需调用标准库函数,调用前必须重新定义用户可以重新定义标准库函数,若如此,该函数将失去原有含义系统根本不允许用户重新定义标准库函数用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源
9、文件中,系统自动去调27、下列定义不正确的是( )A)#define PI 3.141592B) #define S 354C) int max(int x,int y); D) static char c; 28、下列程序运行结果是( )#define P 3#define S(a) P*a*amain() int ar;ar=S(3+5);printf(“%d”,ar); A) 192B) 29C) 27D) 25 29、以下能对二维数组a进行正确初始化的语句是( )。A) int a2 = 1,0,1 , 5,2,3 B) int a 3 = 1,2,3,4,5,6 C) int a24
10、 = 1,2,3,4,5,6 D) int a 3 = 1,0,1 ,1,130、下列描述中不正确的是( )A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整形数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符“”对字符型数组进行整体赋值31、C语言程序中每个语句和数据定义的最后必须有一个( )A 分号 B 逗号 C 空格 D 冒号32、设有定义”int a=3,b,*p=&a;”,则下列语句中使b不为3的语句是( )A) b=*&a; B) b=*a; C) b=a; D) b=*p;33、若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能
11、的语句是( )A、i=*p; B、*p=*&j; C、i=&j; D、i=*p;34、 关于指针概念不正确的说法是( )A) 一个指针变量只能指向同一类型的变量B) 一个变量的地址称为变量的指针C) 只有同一类型变量的地址才能放到指向该类型变量的指针变量中D) 指针变量可以同整数赋,不能用浮点数赋35、若有以下定义和语句:double r=99,*p=&r;*p=r;则以下叙述正确的是( )A) 两处的*p含义相同,都说明给指针变量p赋值B) 在”double r=99,*p=&r;”中,把r的地址赋值给了P所指的存储单元C) 语句“*p=r;”把变量r的值赋给指针变量PD) 语句”*p=r;
12、”取变量r的值放回r中二、 填空题(每空1分,共16分)1、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为 。2、有逗号表达式(a=3*5,a*4),则 a的值为 。3、C程序中,每条语句都以 结尾 。、若a = 1 , b = 2 ,则表达式a b ? a : b + 1的值是 。5、C语言中的标识符只能由三种字符组成,它们是 、 、 。6、若a = 5,b = 2 , c = 1 ,则表达式a b b) m=a; else m=b;”转换成与其等价的一条语句是: 。8、执行完“for(i=0;+i = a & ch = z ) ;printf ( “ %c ”
13、, ch ) ; 2、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。int n = 0 , c ;c = getchar ( ) ;while ( ) if ( ) n + + ; c = getchar ( ) ;3、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。 main ( ) int a10 = 1,2,3,4,5,6,7,8,9,10 ; int k ,s,i ; float ave ; for ( k = s = i = 0 ; i 10 ;i+ + ) if ( ai % 2 ! = 0 ) ; s + = ai ; k+ + ; if (k!= 0) ave = s / k ; printf (“%d ,%fn”,k ,ave ) ; 五、 仔细阅读如下程序,写出运行结果(每小题3分,共9分)1、#define PI 3 main( ) int s,r; for(r=4;r100) break; else printf(“s=%d ”,s); 2、main( ) int I; for(I=0 ; I=500的最小n及总和值(5分)3、从键盘输入一百分制成绩,要求输出成绩等级、。其中:90分以上为,8089分为,7079分为,6069分为,60分以下为。(10分)9
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。