2024年3月12日发(作者:)

.

XX省计算机2级考试

-学年 第学期 c程序设计 试卷( )

题号

得分

总 分

一、选择题〔本题共20道小题,共40分。〕

1. 表示关系x≤y≤z的c语言表达式为

A) (X<=Y)&&(Y<=Z)

B) (X<=Y)AND(Y<=Z)

C) (X<=Y<=Z)

D) (X<=Y)&(Y<=Z)

2. 以下程序的输出结果是

main( )

{

int a=12,b=12;

printf("%d %dn",--a,++b);

}

A)10 10 B)12 12 C)11 10 D)11 13

3. 以下的for循环

for(x=0,y=0; (y!=123)&&(x<4); x + + );

A) 是无限循环 B〕循环次数不定 C〕执行4次 D〕执行3次

4. 有以下程序

main()

{

char a[]="programming",b[]="language";

char *p1,*p2;

int i;

p1=a;p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))

printf("%c",*(p1+i));

}

输出结果是

A)gm B)rg C)or D)ga

5. 以下说法中正确的是

A) #define和printf都是C语句 B) #define是C语句,而printf不是

C) printf是C语句,但#define不是 D) #define和printf都不是C语句

.

.

6. 下面的程序

main()

{ int x=3;

do {

printf("%dn",X-=2);

}while(!(--x));}

A) 输出的是1 B) 输出的是1和-2C) 输出的是3和0 D) 是死循环

7. 下面能正确进行字符串赋值操作的语句是

A)char s[5]={"ABCDE"}; B)char s[5]={'A'、'B'、'C'、'D'、'E'};

C) char *s;s="ABCDEF"; D)char *s; scanf("%s",s);

8. 以下程序的输出结果是

main( )

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

for(i=0;i<4;i+=2)printf("%d ",p[i]);

}

A) 5 2 B) 5 1 C) 5 3 D) 9 7

9. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为

A) a<>0 B) !a

C) a=0 D) a

10. 下面各语句行中,能正确进行赋字符串操作的语句行是

A) char st[4][5]={"ABCDE"};B) char s[5]={'A','B','C','D','E'};

C) char *s; s="ABCDE";D) char *s; scanf("%s",s);

11. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是

A) EOF B) -1 C) 非零值 D) NULL

12. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的

语句是

A)k=*p1+*p2;

B)p2=k;

C)p1=p2;

D)k=*p1 *(*p2);

13. 下面程序的输出是

main()

{ int a=-1, b=4,k;

k=(a++<=0)&&(!(b--<=0));

printf("%d %d %dn",k,a,b);}

A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2

14. 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是

A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x

.

.

15. 设有

static char str[ ]="Beijing";

则执行

printf("%dn", strlen(strcpy(str,"China")));

后的输出结果为

A) 5 B) 7 C) 12 D) 14

16. 以下程序的输出结果是

A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1

main( )

{ int x=10,y=10,I;

for(i=0;x>8;y=++i)

printf("%d,%d ",x--,y);

}

17. 设有如下函数定义:

int f(char *s)

{ char *p=s;

while(*p!='0') p++;

return(p-s); }

如果在主程序中用下面的语句调用上述函数,则输出结果为

printf("%dn",f("goodbey!"));

A) 3 B) 6 C) 8 D) 0

18. 若执行下面的程序时从键盘上输入3和4,则输出是

main()

{ int a,b,s;

scanf("%d %d",&a,&b);

s=a;

if(a

s=s*s;

printf("%dn",s);}

A) 14 B) 16 C) 18 D) 20

19. 下面四个选项中,均是C语言关键字的是:

A. auto enum include B swith typedef continue

C signed union scanf D if struct type

20. 有以下程序

viod fun (int a,int b,int c)

{a=456;b=567;c=678;}

main()

{

int x=10,y=20,z=30;

.

.

fun (x,y,z);

printf("%d,%d.%d",x,y,z);

}

输出结果是

A)30,20,10

B)10,20,30

C)456,567,678

D)678,567,456

二、填空题〔每空1分,共10分。〕

1. 为表示关系:x≤y≤z ,应使用的C语言表达式是_____________。

2. 字符串是以__________为结束标志的一维字符数组。有定义:char a[]="";则a数组的长度

是____________。

3. 设int a; float f; double i ;则表达式10+'a'+i*f值的数据类型是___________。

4. 设有说明语句"int a[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,

a[2][2]的初始化值为______________。

5. 假定p所指对象的值为25,p+1所指对象的值为46,则执行"(*p)++;"语句后,p所指对

象的值为___________

6. 程序由主要由__________、_________组成。

7. 有函数调用fun1〔x+y,〔y,z〕,10,fun〔〔x,y―1〕〕〕;函数fun1有_______

个参数

三、判断题〔本题共10道小题,共10分。〕

1. 在C中,外部变量的隐含类别是自动存储类别( )

2. 实参和与其对应的形参共占用一个存储单元〔 〕

3. 在不得已的情况下〔例如提高程序运行效率〕,才使用goto语句〔 〕

4. 条件表达式可以取代if语句,或者用if语句取代条件表达式〔 〕

5. 函数中的静态变量在函数每次调用时,都会重新设置初值〔 〕

6. 全局变量都是静态存储〔 〕

7. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型

声明〔 〕

8. 系统不允许用户重新定义标准库函数〔 〕

9. 若调用一个函数,且此函数中没有return语句,则该函数没有返回值〔 〕

10. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2连接到串str1之后再将串str1复制

到串str3中( )

四、程序填空〔本题共5道小题,每题4分,共20分。〕

1.以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字

母A,其它字符不变,返回转换后的字母或其它字符。请填空。

char fun〔char ch〕

{

if〔ch= ='Z'〕 ch=__________;

.