c语言试卷

发布 2021-04-23 10:52:28 阅读 7820

装订线。

试卷★考试时间共120分钟★

提示:本页为答题纸,所以题的答案都写在本页相应题号后面,写在其他地方无效。

一、 选择题。

二、 填空题。

三、 程序分析题(有格式要求的,书写时包括相应的输出格式)

1. 程序运行结果是2. 程序运行结果是:

3. 程序运行结果是4. 程序运行结果是:

5. 程序运行结果是6. 程序运行结果是:

四、 程序设计题(从4个题中选作3题,每题12分,共36分)

1. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )

a.数组的首地址 b. 数组的第一个元素值 c.数组中全部元素的值 d. 数组元素的个数。

2. 判断两个字符串s1和s2相等,应当使用( )

a. if (s1 ==s2) b. if (s1 = s2) c. if (!strcmp(s1,s2)) d. if (strcmp(s1,s2))

3.下列优先级最低的算符是( )

a. &b. &c. |d. =

4.定义数组a[m][n],则在元素a[i][j]之前的元素个数为( )

a. j*n+i b. i*n+j c. i*n+j-1 d. i*n+j+1

5.已知int j,i=1;执行语句“j=i++;后,变量i的值是( )

a. 1 b. 2 c. –1 d. -2

6.已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是( )

a. 6 b. 12 c. 30 d. 36

7.有如下程序:

int main()

float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

printf(“%f”,y); 该程序的输出结果是( )

a. 0.000000 b. 0.250000 c. 0.500000 d. 1.000000

8. 以下数组定义中不正确的是( )

a. int a[2][3b. int b[3]=,

9. 有如下程序。

int main()

int i,sum;

for(i=1;i<=3;sum++)sum+=i;

printf(“%d”,sum);

该程序的执行结果是( )

a.6 b. 3 c. 死循环 d. 0

10. 下列对字符串的定义中,错误的是( )

a. char str[7] =fortran"; b. char str fortran";

c. char *str = fortran"; d. char str[7] =

11.在下面的函数声明中,存在着语法错误的是( )

a. void bc(int a, int ) b. void bd(int, int) c.

int be(int, int) d. int bf(int x; int y )

12.若有以下的定义:int t[3][2];能正确表示t数组元素首地址的表达式是( )

a.&t[3][2] b. t[3c. t[1d. t[0]

13. 有如下定义

struct person

char name[9];

int age;};

struct person class[10]=;

根据上述定义,能输出字母m的语句是( )

printf(“%c”,class[3].name[0]);

printf(“%c”,class[2].name[0]);

14. 以下程序的输出结果是( )

int a, b;

void fun()

a=100; b=200; }

main()

int a=5, b=7;

fun();

printf("%d%d ", a,b);

a. 100200 b. 57 c. 200100 d. 75

15. 以下定义语句中,错误的是( )

a. int a=1,2b. char *a[3]; c. char s[10]="test"; d. int n=5,a[n];

16. 若在键盘上输入:283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是( )

a. scanf(“%f”,&c); b. scanf(“%8.4f”,&cc. scanf(“%6.2f”,&c); d. scanf(“%8”,&c);

17. 以下说法中正确的是。

a. 在c语言中,实参与其对应的形参各占独立的存储单元;

b. 在c语言中,实参与其对应的形参共占同一个存储单元;

c. 在c语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

d. 在c语言中,形参是虚拟的,不占存储单元。

18. 分析下面的**:

#include<>

voidmain()

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

switch(a)

case1:printf("星期一");case2:printf("星期二");case3:printf("星期三");case4:printf("星期四");

case5:printf("星期五");case6:printf("星期六");case7:printf("星期日");default:printf("输入错误");

若a=6,则输出结果是()。

a. 星期六 b. 星期六星期日 c. 星期六星期日输入错误 d. 输入错误。

19. 分析下面的**:

if(x>20||x<-10)

if(y<=100&&y>x)

printf("good");

elseprintf("bad");

如果x=30,y=150,输出为()。

a. good b. bad c. good bad d. bad good

20. 假设整型变量a的值是1,b的值是2,c的值是3,在这种情况下执行下面的语句:u=(a==2)?b+a:c+a;执行该语句后整型变量u的值为()。

a. 0 b. 3c. 4d. 5

21. 分析下面的c语言**:

inta=1,b=10;

do{b-=a;a++;

while(b--<0);

则执行循环语句后b的值为。

a. 9 b. -2 c. -1 d. 8

22. c语言中,while和do…while循环的主要区别是。

a. while的循环控制条件比do…while的循环控制条件严格 b. do…while的循环体至少无条件执行一次。

c. do…while允许从外部转到循环体内d. do…while的循环体不能是复合语句。

23. 在c语言中是在所有函数外部声明的。

a. 全局变量 b. 局部变量 c. 形参 d. 实参。

24.在c语言中,能正确表示a和b同时为正或同时为负的逻辑表达式是( )

a. (a>=0‖b>=0)&&a<0‖b<0) b. (a>=0&&b>=0)&&a<0&&b<0) c. (a+b>0)&&a+b<=0) d. a*b>0

25. 分析下面的c**段:

charstr1[15]="se**iew";

charstr2[15]="seabreeze";

strcpy(str1,str2);

printf("%s",str1);

则输出结果是。

a. se**iew b. seabreeze c. se**iewseabreeze d. seabreezese**iew

1. c语言中用表示逻辑值“假”,用表示逻辑值“真”。

2. char *p[10]; 这条语句的含义是: 。

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 语言的参数传递机制包括传...