100.在printf函数中用来输出十六进制无符号整数的格式字符是() A.d格式符 B.x格式符 C.u格式符 D.o格式符 二、填空题
1.设int x=17,y=5;执行语句x+=--x%--y后的值为_________。
2.ch是字符变量,写出判断ch为大写英文字母的逻辑表达式为_________。 3.求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c、的值依次为_________、_________、_________、_________。
4.整型变量x值为127,语句printf(\的输出结果为_________。
5.整型变量a、b的值分别为7、15,语句printf(\输出_________。 6.定义a为长度为10的字符串、同进为字符串赋初值\的语句为_________。 7.定义语句为char a[]=\语句printf(\输出_________。 8.函数的实参为数组名时,形参与实参结合的传递方式为_________。
9.以下十个运算符+ ! << != , ?: && = || %中优先级别最高和最低的分别是________和_________。
10.循环语句while (表达式) printf(\执行和结束时,“表达式”的值分别是_________和_________。
11.循环语句for(;;) printf(\和do { printf(\执行完毕循环,循环次数分别是___________和___________。
12、表示条件10<x<100或x<0的C语言表达式是_________ 。 13. 设有以下变量定义,并已赋确定的值
char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为_________。
14. 若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式_________。
15. 以下程序段的输出结果是 _________ int i=9; printf(\
16. 已知字符A的ACSII码值为65,以下语句的输出结果是_________
char ch=’B’;
printf(“%c %d\\n”,ch,ch); 17. 有以下语句段
int n1=10,n2=20;
printf(“ _________ ”,n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10 n2=20 18. 表达式12345 = = 12345/3*3的值为 _________。
19.执行printf(“%d,%d”,(ⅰ+ +),(j=5,+ +j));的输出为_________。 20.表达式4﹥10?5>3?(4,2):3:(6,7)的值为_________。
21.c语言源程序文件的后缀是_________,经过编译后,生成文件的后缀是_________,经过连接后,生成文件的后缀是_________。
22. c语言的注释符由_______ __开始,至_____ ____结束。 23、C程序语句分隔符是_________
24、在C语言中,设整型变量a的初值为12,则表达式 a+=a-=a*=a的值为_________ 三、判断题:
1、 7&3+12的值是15。 ( )
2、 for( ; ; )S中的语句S必执行无穷多次。 ( ) 3、 unsigned 和void 在C中都是保留的。 ( )
4、 若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。( ) 5、 若有 int ⅰ=5, j=10;则执行完语句 6、 switch (i){
case 4: j + +; case 5: j - - ; case 6: j + +; case 7: j - =2; default:;
} 后j的值为8。 ( ) 7、 若有 int =10, j=2;
8、 则执行完ⅰ* =j+8;后ⅰ的值为28。 ( ) 9、 —36+4的值为5。 ( )
10、一个由C语言编写的源程序,只要经过编译就可生成可执行文件() 11、在C语言中,所有的保留字均采用小写()
12、在C语言中,条件运算符是一个唯一的三目运算符()
13、在C语言中,所有的关系运算符优先级相同,均低于算术运算符()
14、在C语言中,while 语句的循环体可能一次也不执行,而do –while 语句的循环体至少执行一次() 四、程序分析题
1. main()
{ int j,F [5] = {0,1};
for (j=2;j<5;j++) F[j]=F[j-1]+F[j-2]; for (j=0;j<5;j++) printf (\ print (\ 2. main()
{ int a=0,b=5,c=0,d=10; if(a)d+=10; else if(!b)
if(!c)d=15; else d=25;
printf(\
3. int func(int n) {
if (n==0)return 0;
else if (n==1) return 1; else return n*n+func(n-2); }
main() {
printf(\ }
4.以下程序的输出结果是() main()
{int a=5,b=4,c=6,d;
printf(″%d\\n″,d=a>b? (a>c? a:c):(b)); }
5、执行C语言程序后,输出“#“号的个数是( ) #include
for (i=1;i<5;i++)
for(j=2;j<=i;j++) putchar (‘#’); }
6、运行下列C语言程序,显示结果为(7) main()
{int m[3][3]={1,4,7,2,5,8,3,6,9}; int i,k=2;
for(i=0;i<3;i++) printf(“%d “,m[i][k]); }
7、main()
{int a=4,b=3,c=5,t=0; if(a
printf(“%d %d %d”,a,b,c); } 8、、以下程序的输出结果是( ) main() {int n;
for (n=1;n<=20;n+=2)
if(n%3==0)printf(“%d ”,n); }
9、以下程序的输出结果是( ) main() {int j;
for(j=4;j>=2;j--) switch(j) {
case 0 :printf(“%c”,’0’); case 1:printf(“%c”,’1’);
case 2:printf(“%c”,’2’);break; case 3:printf(“%c”,’3’); default: printf(“%c”,’4’); }}
10、以下程序的输出结果是() main()
{int m[10],a;
for(a=0;a<10;a++) m[a]=10-a; printf(“%d”,m[2+m[7]]); }
11、以下程序的输出结果是() main()
{int a=1,b=10;
do
{b-=a;a+=3;} while (b>=0);
printf(“a=%d,b=%d”,a,b); }
12、以下程序的输出结果是() int add(int a,int b) { return (a+b);} main()
{int x=1,y=2,z=3,s; s=add(add(x,y),z); printf(“%d”,s); }
五、程序填充题
1.输入某年某月后,输出该月的天数。 main()
{ int year,month,day;
scanf(\
if (month<1||month>12)printf(\ else {
swich (month)
{ case 2:day=___________________________?29:28; break; case 4: case 6: case 9:
case 11:day=30;______________________; _______________________:day=31; }
printf(\ } }
2.输出下列图形。 1 1 3 1 3 5 1 3 5 7 1 3 5 7 9 1 3 5 7 9 11
main()
{ int i,j;
for (i=1;i<=___;i++)
{for (j=1;j<=____;j+=2) printf(\ printf(\ } }
3.以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。
#define N 3 #define M 4
void LineMax(int x[N][M]) { int i,j,p;
for ( i=0;i<N; i++ = {p=0;
for ( j=1;j<M; j++ )
if(x[i][p]<x[i][j] 【1】 ;
printf(″The max value in line is %d\\n″, 【2】 ); } }
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; 【3】 ; }
4、执行以下程序,输入-10的结果是 【1】 ,输入5的结果是输入10的结果是 【3】 ,输入30的结果是 【4】
5、以下程序的功能是 。 main()
{int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21}; int sum=0,i;
for(i=0;i<10;i++) if(num[i]>0) sum=num[i]+sum;
printf(″sum=m″,sum);
}
6. 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include
{ int a, b, c, i; a=c=0;
for(i=0;i<10;i+=2) { a+=i; ; c+=b; }
2】 ,。
【 printf(\偶数之和=%d\\n\ printf(\奇数之和=%d\\n\ }
六、指出下列c语言程序中的错误,并改正。(在此行的出错地方划一下划线,并在此行的右侧写出正确的语句)
注意:每行的错误可能不止一处。 \\* this is error program #include
CHAR ch1,ch2; int a,b, A=1,b=3;
ch1=a,ch2=\\r;
printf(“a=%d,b=%d\\n”,a,b)
print(“ch1=%c,ch2=%c\\n”,ch1,CH2);