发布时间 : 星期四 文章江苏省计算机二级C语言试题笔试_试卷 试题及答案更新完毕开始阅读15d4e9adaf51f01dc281e53a580216fc710a5377
. . .
省计算机等级考试shijuan
- 学年 第 学期 c程序设计 试卷( )
题号 一 得分 二 三 四 五 六 七 八 九 总 分 一、选择题(本题共20道小题,共40分。) 1. 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf(\
B)p=(double*)malloc(8);scanf(\C) p=&a;scanf(\D)p=&a; scanf(\
2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main( ) { int x; scanf(\
if(x + + >5) printf(\
else printf(\A) 7和5 B) 6和3 C) 7和4 D) 6和4
3. 下面程序的输出是 A) xyzabcABC #include
{ char *p1=\strcpy(str+2,strcat(p1,p2)); printf(\
4. 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
5. 以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B) zabcABC C) yzabcABC D) xyabcABC
.. ..
. . .
B)函数中的形式参数是局部变量
C)在一个函数定义的变量只在本函数围有效 D)在一个函数的复合语句中定义的变量
6. 请选出以下程序段的输出结果 #include
#define MIN(x,y) (x)<(y)? (x):(y) main() { int i,j,k; i=10; j=15; k=10*MIN(i,j); printf(\}
A) 15 B) 100 C) 10 D)150
7. 在C程序中,可把整型数以二进制形式存放到文件中的函数是
A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数
8. 设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\\0'},*p; p=&a[0];
则表达式_____的值是6。
A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n
9. C语言中形参的缺省存储类别是 A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern) 10. 执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10;
A) 不定值 B) 33 C) 30 D) 10 11. 已知字母A的ASCII码为十进制的65,下面程序的输出是 main()
{ char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';
printf(\A) 67,D B) B,C C) C,D D) 不确定的值
12. 语句:printf(\,12 &012);的输出结果是
.. ..
. . .
A) 12 B) 8 C) 6 D) 012
13. 以下说法中正确的是
A) C语言程序总是从第一个的函数开始执行
B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行
D) C语言程序中的main()函数必须放在程序的开始部分
14. 以下程序运行后,输出结果是 main( ) {
char *s=\s+=2;
printf(\,s); }
A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错
15. 设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)8
16. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 if(a
A)1 B)2 C)3 D)6
17. 设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是 A.7 B.8 C.6 D.2
18. 设C语言中,一个int 型数据在存中占2个字节,则unsigned int 型数据的取值围为:
.. ..
. . .
A) 0-255 B) 1-32767 C) 0-65535 D) 0-2147483647
19. 下面的程序 main()
{ int x=3,y=0,z=0;
if(x=y+z)printf(\else printf(\A) 有语法错误不能通过编译 B) 输出* * * *。
C) 可以通过编译,但是不能通过连接,因而不能运行。 D) 输出# # # #。
20. 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是 A)3
二、填空题(每空1分,共10分。)
1. 若有定义:double x[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。
2. 设有说明语句\则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
3. 表达式7/2的结果是____________。表达式7%2的结果是____________。 4. 若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。 5. C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为______________。
6. 定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。 7. 已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf(\调用语句的数据输入形式是__________
三、判断题(本题共10道小题,共10分。)
1. 在实际编程中,do-while循环完全可以用for循环替换( ) 2. do-while循环中,根据情况可以省略while( )
3. 若调用一个函数,且此函数中没有return语句,则返回一个不确定的值( ) 4. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后( )
.. ..
B)4 C)5 D)6