资源描述
C语言程序设计试卷三姓名: 班级: 学号: 一、单项选择题(每小题1分,共30分)1、以下叙述正确的是( )在C程序中,main函数必须位于程序的最前面 C程序的每行中只能写一条语句C语言本身没有输入输出语句 在对一个C程序进行编译的过程中,可发现注释中的拼写错误2、下面四个选项中,均是不合法的用户标识符的选项的是( ) A float ba _123P_0 1a0 goto tempDo _A int INT3、设有说明语句char ch=72;则变量ch ( )。 包含1个字符 包含2个字符 包含3个字符 说明不合法4、下列数据中,不能作为C语言常量的是( ) A 0128 3.14 ”int”5、要把整数67523赋与整型变量I,则应说明I的类型是( ) int long short unsigned6、对应于语句”scanf(“x=%dy=%c”,&x,&y);”应从键盘上输入的内容是( ) 10 100 10,C x=10 y=b x=2y=A7、一个C程序的执行是从( )。本程序的main函数开始,到main函数结束本程序文件的第一个函数开始,到本程序文件的最后一个函数结束本程序的main函数开始,到本程序文件的最后一个函数结束本程序文件的第一个函数开始,到本程序main函数结束8、判断char型变量c1是否为小写字母的正确表达式是( )a=c1=a)&(c1=z) 98=c1 c1=a&c1=z9、下面的表达式正确的是( ) 5%2.0 AB- d int(5+0.1) n- 7810、表示图中坐标轴上阴影部分的正确表达式是( )x -4 -1 0 1 3-1=x & 1=x|x=3 (x=-4)&(1=x|x=3)x=-4|x=1&x=3 !(-1x3)11、已知字母A的ASCII码为65,以下程序段的输出结果是( ) char c1=A,c2=Y; printf(%d,%d,c1,c2); 65,90 A,Y 65,89 输出格式不合法12、执行以下语句后b的值为( )。 int a = 5 , b = 6 , w = 1 , x =2 , y = 3 , z = 4 ; ( a = w x ) & ( b = y z ) ; 6 0 1 413、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )。 int a=b=c=5; int a,b,c=5; int a=5,b=5,c=5; a=b=c=5;14、设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为( )。 int float double 不确定15、以下程序的运行结果是 ( )main( ) int m = 5; if ( m + + 5) printf(“%dn”, m); else printf(“%dn”,m - - ); 4 5 6 716、为了避免在嵌套的条件语句 if - else 中产生二义性,C语言规定:else子句总是与( )配对。缩排位置相同的if 其之前最近的if 其之后最近的if 同一行上的 if17、以下不正确的语句是 ( )。if (x y ); if ( x = y) & ( x ! = 0) x + = y ;if (x ! = y) scanf (“ %d”,&x); else scanf(“%d”,&y );if ( x y) x + +; y + +;18、C语言中while 与do - while语句的主要区别是 ( )do -while的循环体至少无条件执行一次do -while允许从外部转到循环体内do -while的循环体不能是复合语句while的循环控制条件比do-while的循环控制条件严格19、以下程序段( )x = -1 ;do x = x * x ; while ( !x ) ; 是死循环 循环执行两次 循环执行一次 有语法错误20、以下的for循环for ( x = 0 , y = 0 ; (y! = 123 ) & (x 4) ; x + + ) ;执行3次 执行4次 循环次数不定 是无限循环21、执行下面语句后,变量I的值是( )。 for(I=1;I+4;) ;3 4 5 不定22、设x和y均为int型变量,则执行下面循环后,y的值为( )。for( y=1,x=1;y 12 ? x + 10 : x 12; printf ( “ %dn ” , y); 0 22 12 1024、下列可作为C语言赋值语句的是( ) x = 3, y = 5 a = b = 6 I- -; y = int( x );25、putchar函数可以向终端输出一个( )。 整型变量表达式值 实型变量值 字符串 字符或字符型变量值26、如果一个文件要引用另一文件中变量,必须通过( )来实现。 用extern对变量说明 #include预处理命令 #define预处理命令 用typedef重新定义27、有一函数关系见下表:xy=x0x+1 下面程序段中能正确表示上面关系的是 ( )。y = x + 1; y = x 1; if ( x =0 ) if (x ! = 0 ) if (x 0) if (x 0) y = x - 1; if (x 3 ; j - - ) if ( j % 3 ) j - - ;- - j ; - - j ;printf ( “ %d “ , j ) ; 6 3 7 4 6 2 7 3二、判断分析题(正确的打“”错误的打“”,并简单分析原因)(每小题2分,共10分)1、(I=j)= (j=k)是合法的C表达式。 ( )分析:2、变量在使用前必须先定义其类型。 ( )分析:3、有字符串常量ab123,则该字符串在内存中要占用5个字节的单元。 ( )分析:4、goto语句可以构成循环。 ( )分析: 5、关系表达式:22的值为真。 ( )分析:三、填空题(4、6、7小题各2分,其余每空1分,共15分)1、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为 。2、逗号表达式(a=3*5,a*4),a+15的值为 ,a的值为 。3、C程序中,每条语句都以 结尾 。4、数学表达式的C语言表达式形式为: 。5、设x的值为15,n的值为2,则表达式x % = (n+=3)运算后x的值是 。6、利用条件运算符将这两条语句“if (ab) m=a; else m=b;”转换成与其等价的一条语句是: 。7、设y 为int型变量,请写出描述“y是奇数”的表达式 。8、若a = 5,b = 2 , c = 1 ,则表达式a b = a & ch = z ) ;printf ( “ %c ” , ch ) ; 2、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。 #include main ( ) int i , j ;for ( i = 0 ; ; i + + ) j = i *10 + 6 ; if ( ) continue ; printf ( “ %d “ , j ) ; 3、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。int n = 0 , c ;c = getchar ( ) ;while ( ) if ( ) n + + ; c = getchar ( ) ;4、下面程序的功能是用do - while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。#include main ( ) int i = 1 , j = 0 ; do if ( ) printf ( “ %4d “ , i ) ; j = j + 1 ; if ( ) printf ( “ n “ ) ; i = i + 1 ; while ( i 1000) ;5、求:1 +2+3+100的和。main ( ) int i ; ; for( ;i101;i+) sum += i; printf ( “ % d ” , sum ) ;五、仔细阅读如下程序,写出运行结果或其实现的功能(每小题3分,共15分)1、 main( ) 2、main( ) float num=5.4321; int a=32;char ch=A; num=(int)(num*100+0.5); printf(“ch=%cn”,ch+a); num=num/100; printf(“ch=%d”,ch+1); printf(“num=%fn”,num); 运行结果: 运行结果: 3、#define PI 3 4、main( ) main( ) int a=3,b; int s,r; while(a+=4)for(r=4;r100) break; printf(“a=%d”,a); else printf(“s=%d ”,s); 运行结果: 运行结果: 5、main( ) int I; for(I=0 ; I3;I+) switch(I) case 0 : printf(“0*”); case 1: printf(“1*n) ; break ; case 2 : printf(“2*n); break ; default : printf(“3*n”); break ; 运行结果: 六、编程序题(10分)1求下列分数序列的前20项之和: , 6重庆电子科技学院软件基础试卷B卷 第 页 共6页
展开阅读全文