考试科目: 计算机程序设计基础 考试时间:
题 号 | 一 | 二 | 三 | 总 分 |
得 分 | ||||
阅卷人 | ||||
一、单项选择题(每小题1分,共30分)
1. 一个C程序的执行是从( )。
(A)main()函数开始,直到main()函数结束
(B)第一个函数开始,直到最后一个函数结束
(C)第一条语句开始,直到最后一条语句结束
(D)main()函数开始,直到最后一个函数结束
2. 在C语言程序中,main()的位置( )。
(A)必须作为第一个函数 (B)必须作为最后一个函数
(C)可以任意 (D)必须放在它所调用的函数之后
3. 一个C语言程序是由( )。
(A)一个主程序和若干个子程序组成 (B)一个或多个函数组成
(C)若干个过程组成 (D)若干个子程序组成
(C)若干个过程组成 (D)若干个子程序组成
4. 下列说法中,错误的是( )。
(A)每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
(B)每个函数都有一个函数头和一个函数体,主函数也不例外
(C)主函数只能调用用户函数或系统函数,用户函数可以相互调用
(D)程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
5. 下列符号中,不属于转义字符的是( )。
(A)\\ (B)\0xAA (C)\t (D)\0
6. C语言源程序的基本单位是( )。
(A)过程 (B)函数 (C)子程序 (D)标识符
7. 以下结果为整数的表达式是( )。( 设有inti;char c; float f; )
(A)i+f (B)i*c (C)c+f (D)i+c+f
(A)i+f (B)i*c (C)c+f (D)i+c+f
8. 设有char ch; 以下不正确的赋值语句是( )。
(A)ch=’123’; (B)ch=’\xff’; (C)ch=’\08’; (D)ch=”\”;
(A)ch=’123’; (B)ch=’\xff’; (C)ch=’\08’; (D)ch=”\”;
9. 逗号表达式(a=3*5,a*4), a+15的值是( )。a的值是( )。
①(A)15 (B)60 (C)30 (D)不确定
②(A)60 (B)30 (C)15 (D)90
②(A)60 (B)30 (C)15 (D)90
10. 设int a=2,b,c; 则执行c=b=a――;语句后,a 的结果是(B )。b的结果是(C)。c的结果是(C)。
(A)0 (B)1 (C)2 (D)3
(A)0 (B)1 (C)2 (D)3
11. 以下正确的C语言标识符是( )。
(A)%x (B)a+b (C)a123 (D)test!
(A)%x (B)a+b (C)a123 (D)test!
12. 下列字符序列中,不可用作C语言标识符的是( )。
(A)abc123 (B)no.1 (C)_123_ (D)_ok
13. 下列符号常量中非法的是( )。
(A)’\a’ (B)’b’ (C)’\’ (D)’3’
(A)’\a’ (B)’b’ (C)’\’ (D)’3’
14. 在C语言中,不同的类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式
中包含有int、long、unsigned和char类型的变量和数据,则表达式最后的运算结果是( )类型数据。
(A)int (B)char (C)unsigned (D)long
(A)int (B)char (C)unsigned (D)long
15. 如下程序的执行结果是( )。
{ int n=1; printf(“%d %d %d\n”,n, n++,n--);}
(A)1 1 1 (B)1 0 1 (C)1 1 0 (D)1 2 1
{ int n=1; printf(“%d %d %d\n”,n, n++,n--);}
(A)1 1 1 (B)1 0 1 (C)1 1 0 (D)1 2 1
16. 有如下程序:int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);正确的输入是( )。
(A)10A 20B<CR> (B)10 A 20 B<CR>
(A)10A 20B<CR> (B)10 A 20 B<CR>
(C)10 A20B<CR> (D)10A20 B<CR>
17. 有如下程序: scanf(“a=%d,b=%d,c=%d”,&a,&b, &c);
若要求a,b,c的值分别为1,3,2,正确的输入是( )。
(A)132<CR> (B)1,3,2<CR>
若要求a,b,c的值分别为1,3,2,正确的输入是( )。
(A)132<CR> (B)1,3,2<CR>
(C)a=1,b=3,c=2<CR> (D)a=1 b=3 c=2<CR>
18. 与数学式子对应的C语言表达式是( )。
(A)9*x^n/(2*x-1) (B)9*x**n/(2*x-1)
(C)9*pow(x,n)*(1/(2*x-1)) (D)9*pow(n,x)/(2*x-1)
(A)9*x^n/(2*x-1) (B)9*x**n/(2*x-1)
(C)9*pow(x,n)*(1/(2*x-1)) (D)9*pow(n,x)/(2*x-1)
19. 以下程序的执行结果是( )。
{int i=010,j=10; printf(“%d,%d\n”,++i,j--);}
(A)11,10 (B)9,10 (C)010,9 (D)10,9
{int i=010,j=10; printf(“%d,%d\n”,++i,j--);}
(A)11,10 (B)9,10 (C)010,9 (D)10,9
20. 以下程序的执行结果是( )。
{int a=2,c=5; printf(“a=%%d,b=%%d\n”,a,c);}
(A)a=%2,b=%5 (B)a=2,b=5
{int a=2,c=5; printf(“a=%%d,b=%%d\n”,a,c);}
(A)a=%2,b=%5 (B)a=2,b=5
(C)a=%%d,b=%%d (D)a=%d,b=%d
21. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。
(A)6 (B)0 (C)2 (D)1
22. 以下使i的运算结果为4 的表达式是( )。
(A)int i=0,j=0; (i=3,(j++)+i);
(A)int i=0,j=0; (i=3,(j++)+i);
(B)int i=1,j=0; j=i=((i=3)*2);
(C)int i=0,j=1; (j= =1)?(i=1):(i=3);
(C)int i=0,j=1; (j= =1)?(i=1):(i=3);
(D)int i=1,j=1; i+=j+=2
23. 如果a=1,b=2,c=3,d=4,则表达式a<b? a:c<d? c:d的值为( )。
(A)1 (B) 2 (C) 3 (D) 4
(A)1 (B) 2 (C) 3 (D) 4
24. 选择出合格的if语句(设int x,a,b,c;)( )。
(A)if (a=b) x++; (B)if (a=<b) x++;
(C)if (a<>b) x++; (D)if (a=>b) x++;
25. C语言用( )表示逻辑“真”值。
(A)true (B)t 或y C)非零整数值 (D)整数0
(A)true (B)t 或y C)非零整数值 (D)整数0
26. 以下for循环是( )。
For (x=0,y=0; (y!=123) && (x<4); x++);
(A)无限循环 (B)循环次数不定 (C)执行4次 (D)执行3次
(A)无限循环 (B)循环次数不定 (C)执行4次 (D)执行3次
27. 对于for(表达式1; ;表达式3)可理解为( )。
(A)for(表达式1;0;表达式3)
(A)for(表达式1;0;表达式3)
(B)for(表达式1;1;表达式3)
(C)for(表达式1;表达式1;表达式3)
(D)for(表达式1;表达式3;表达式3)
28. 以下程序段的输出结果是( )。
x= -1; do {x=x*x;} while (!x);
(A)是死循环 (B)循环执行二次 (C)循环执行一次 (D)有语法错误
(A)是死循环 (B)循环执行二次 (C)循环执行一次 (D)有语法错误
29. 阅读以下程序,当输入数据的形式是:12,34,正确的输出结果为( )。
#include “stdio.h”
main()
{int a,b;
scanf(“%d%d”,&a,&b);
printf(“a+b=%d\n”,a+b);
}
(A)a+b=46 (B)有语法错误
(C)a+b=12 (D)不确定值
30. 请读程序:
#include<stdio.h>
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
#include<stdio.h>
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序的输出结果是( )。
(A)a=2,b=1 (B)a=1,b=1
}
上面程序的输出结果是( )。
(A)a=2,b=1 (B)a=1,b=1
(C)a=1,b=0 (D)a=2,b=2
二、填空题(每空2分,共30分)
1. 设int a=1,b=2,c; 执行c=(-a++)+(++b); 后,变量c的结果是 2 。
2. 执行下列语句后,z的值是 7 。c语言程序分析题及答案
int x=4,y=25,z=2; z=(- -y/++x)*z- -;
int x=4,y=25,z=2; z=(- -y/++x)*z- -;
3. 以下程序的执行结果是 -1 。 unsigned int b=65535; printf(“%d”,b);
4. 以下程序的执行结果是 6,8,6,7 。
main( )
{ int i,j,x,y; i=5; j=7; x=++i; y=j++; printf(“%d,%d,%d,%d\n”,i,j,x,y);}
{ int i,j,x,y; i=5; j=7; x=++i; y=j++; printf(“%d,%d,%d,%d\n”,i,j,x,y);}
5. 以下程序的执行结果是 n=-4 。
{ int n=2; n+=n-=n*n; printf(“n=%d\n”,n);}
{ int n=2; n+=n-=n*n; printf(“n=%d\n”,n);}
6. 以下程序的执行时,先输入a↙;后输入b↙。最后显示的结果是 a↙,b 。
#include <stdio.h>
main( ){int i,j; printf(“Enter a character:”);
i=getchar( ); j=getchar( ); putchar(i);printf(“Enter a character,again :”);
i=getchar( ); j=getchar( ); printf(“%c,%c\n”,j,i); }
#include <stdio.h>
main( ){int i,j; printf(“Enter a character:”);
i=getchar( ); j=getchar( ); putchar(i);printf(“Enter a character,again :”);
i=getchar( ); j=getchar( ); printf(“%c,%c\n”,j,i); }
7. 以下程序的执行结果是 dec:1,oct:1,hex:1,unsigned:1 。
{short i=1; printf(“dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i);}
8. 以下程序的执行结果是 3.141592,3.1415,3.142 。
{float f=3.1415927; printf(“%f,%5.4f,%3.3f”,f,f,f);}
9. 以下程序输入x=1.23,y=50<CR>后的执行结果是 x= 1.23,y= 50.00 。
{float x,y;
scanf(“x=%f,y=%f”,&x,&y);printf(“x=%7.2f,y=%7.2f\n”,x,y);}
10. 以下程序的执行结果是 end 。
{ int a,b,c; a=2;b=3;c=1; if (a>b)
if (a>c)printf(“%d\n”,a);
else printf(“%d\n”,b);
printf(“end\n”); }
11. 以下程序在输入5,2之后的执行结果是 s=2,t=3 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论