C语言试卷

发布 2021-04-23 11:43:28 阅读 5247

江苏省计算机等级考试。

一、选择题(本题共20道小题,共40分。)

1. 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是。

a)*p=&a; scanf("%lf",p);

b)p=(double*)malloc(8);scanf("%f",p);

c) p=&a;scanf("%lf",a);

d)p=&a; scanf("%le",p);

2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是。

main( )

int x;

scanf("%d",&x);

if(x + 5) printf("%d",x);

else printf("%d",x

a) 7和5 b) 6和3 c) 7和4 d) 6和4

3. 下面程序的输出是。

a) xyzabcabc b) zabcabcc) yzabcabcd) xyabcabc

#include<>

#include<>

main()

char *p1="abc",*p2="abc",str[50]="xyz";

strcpy(str+2,strcat(p1,p2));

printf("%s", str);}

4. 若有以下说明:

int a[12]=;

char c='a',d,g;

则数值为4的表达式是。

a)a[g-cb)a[4

c)a['d'-'cd)a['d'-c]

5. 以下叙述中不正确的是。

a)在不同的函数中可以使用相同名字的变量。

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("%d",k);

a) 15b) 100c) 10d)150

7. 在c程序中,可把整型数以二进制形式存放到文件中的函数是。

a) fprintf函数 b) fread函数 c) fwrite函数 d) fputc函数。

8. 设有以下语句:

struct st ;

static struct st a[3]=,p;

p=&a[0];

则表达式___的值是6。

a)p + n b) p->n + c) (p).nd) +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) 33c) 30d) 10

11. 已知字母a的ascii码为十进制的65,下面程序的输出是。

main()

char ch1,ch2;

ch1='a'+'5'-'3';

ch2='a'+'6'-'3';

printf("%d,%c",ch1,ch2);}

a) 67,db) b,c

c) c,dd) 不确定的值。

12. 语句:printf("%d ",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="abcde";

s+=2;printf("%ld",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-=3;a)2 b)4 c)6 d)8

16. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为。

if(aif(celse if(aif(belse x=3;

else x=6;

else x=7;

a)1 b)2 c)3 d)6

17. 设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是。

a.7b.8c.6d.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 b)4 c)5 d)6

二、填空题(每空1分,共10分。)

1. 若有定义:double x[3][5],则x数组中行下标的下限为列下标的下限为。

2. 设有说明语句"int a[3][4]=,则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=p=a;表达式(*+p)++的值是。

7. 已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf("%d,%d,%d",&i,&j,&f)调用语句的数据输入形式是。

三、判断题(本题共10道小题,共10分。)

1. 在实际编程中,do-while循环完全可以用for循环替换( )

2. do-while循环中,根据情况可以省略while( )

3. 若调用一个函数,且此函数中没有return语句,则返回一个不确定的值( )

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

5. 自增运算符(++或自减运算符(--只能用于变量,不能用于常量或表达式( )

6. 全局变量使得函数之间的"耦合性"更加紧密,不利于模块化的要求( )

7. 函数的定义可以嵌套,但函数的调用不可以嵌套( )

8. 一个变量在内存中占据一定的存储单元( )

9. 在while循环中允许使用嵌套循环,但只能是嵌套while循环( )

10. 字符型数组中可以存放字符串( )

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

1. 设有以下程序:

main()

int n1,n2;

scanf("%d",&n2);

while(n2!=0)

n1=n2%10;

n2=n2/10;

printf("%d",n1);

程序运行后,如果从键盘上输入1298;则输出结果为。

2. 以下程序输出的最后一个值是。

int ff(int n)

static int f=l;

f=f*n;

return f;

main()

int i;

for(i=1;i<=5;i++ printf("%d",ff(i));

3. 编写程序,计算s=1+(1+2)+(1+2+3)+…1+2+3+…+n)的值。

#include <>

main()

int n,s,sum=0;

scanf("%d",&n);

for(int i=1;i<=n;i++)

for(int j=1;j<=i;j++)

c语言试卷c

a.p q c.p n1 10 若有说明语句 int a,b,c,d c 则能从键盘读入三个整数分别赋给变量a b c的语句是。a.scanf d d d a,b,d b.scanf d d d a,b,d c.scanf d d d a,b,dd.scanf d d d a,b,d 11 c语言标...

C语言试卷A

青海大学试卷 a卷 系别 班级学号姓名。考试课程 程序设计基础 c 考试日期 2009 年 12月17日。注 所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回。一 填空题 每空1分,共16分 1 整型静态数组没有初始化,也没有赋值,此时数组元素的值均为 0 2 数组在内存中占...

C语言试卷

一 填空共5题 共计10分 第1题 2.0分 题号 339 赋值运算符的结合性是由 右 至 左 第2题 2.0分 题号 925 在c 语言结构化程序中,函数 是程序的基本组成单元 在c 语言的面向对象设计框架中,对象 是程序的基本组成单元。第3题 2.0分 题号 926 c 语言的参数传递机制包括传...