往年辽宁某化工大学C语言程序设计测试卷(十二套试卷)及答案_第1页
往年辽宁某化工大学C语言程序设计测试卷(十二套试卷)及答案_第2页
往年辽宁某化工大学C语言程序设计测试卷(十二套试卷)及答案_第3页
往年辽宁某化工大学C语言程序设计测试卷(十二套试卷)及答案_第4页
往年辽宁某化工大学C语言程序设计测试卷(十二套试卷)及答案_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计测试卷(一)A、a!=4|lb==l

(总分100分,考试时长90分钟)B、'a'%3

C、'a'=l/2

题号—*二三总分阅卷人

D、'a'+32

分值402040100

【答案】C

得分【解析】选项C中的'a'是单字节它是不允许被赋值的。所以选项C是非法的表达式。选

项A是逻辑表达式,是正确的。选项B是字符的值与3进行求余运算。是正确的。选

■题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。项D参加运算的也是字符的值,所以这个表达式也是正确的。

■考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。

5、下面程序的输出结果是.

一、单项选择题(每小题2分,共40分)#include<stdio.h>

voidmain()

1、在微机汉字系统中,一个汉字的机内码占的字节数是。(

A、1intx=3;

B、2do

(

C、4

printf("%d”,x-=2);

D、8)

while(!(-x));

【答案】B

)

2、若intx=l,y=2,z=3则表达式xVz?y:z的结果是。A、1

A、-1B、1-2

B、3C、30

C、2D、是死循环

D、0

【答案】B

【答案】C

6、对于代码charcl[8];

scanf(〃%s〃,cl);

3、与十进制数245等值的二进制数是。

printf('\n%s”,cl);

A、11111110

在程序运行时,输入了〃thisprettyboy〃,则对应的运行输出显示结果是—

B、11101111

A、thispre

C、11111011

B、this

D、11101110

C、thisprettyboy

【答案】AD、数组越界,不能显示

【解析】十进制向二进制的转换采用“除二取余”法,本题计算过程如下。

【答案】B

[*]

7、若有运算符:〉、一、〈V、%、sizeof,则它们按优先级(由高至低)的正确排列顺序

4、若所用变量都已正确定义,则在以下选项中,非法的表达式是一。

为o【答案】A

A、%、sizeof、>、<<>=

11、以下程序段给数组所有元素输入数据:

B、sizeof>%>>、=、<<

main()

C^sizeof><<s>、%、=

(

D、sizeof>%、<<>>、=inta[10],i=0;

while(i<10)scanf("%d",);

【答案】D)

应在下划线处填入的是。

有数组:chara[]=//thisisanegg”;。请问该数组到底占了几个字节?

A、a+(i++)

A、11

B、+

B、12

C、a+i

C、14

D、&a[++i]

D、15

【答案】A

【答案】D

12、有以下程序:

9、以下选项中,合法的数值型常量是。

^defineP3

A、3.2

voidF(intx)

B、’X'(

C、099return(P*x*x);

D、OxEH}

mainO

【答案】A(

printfC%d\n\F(3+5));

10、下面程序的功能是将字符串s中所有的字符'c'删除。)

#include“stdio.h"程序运行后的输出结果是。

main()

A、192

(

B、29

chars[80];

inti,j;C、25

gets(s);D、编译出错

for(i=j=0;s[i]!-\0*;i++)if(s[i]!=,c);

s[j]=\0';【答案】A

puts(s);【解析】本题的函数F的功能是,对于形参x,返回3*x*x的值。因此对于函数调用

)“F(3+5);”先计算得到实参结果是8,然后调用F,返回结果应该是3X8X8=192。正

A^s[j++]=s[i]确选项是A。

B、s[++j]=s[i]

13、为了要计算s=10!(10的阶乘),则以下对s的定义正确的是________o标识符由字

C、s[j]=s[i];j++

母,数字和下划线组成且第一个字符必须为字母或下划线auto自动变量register寄存

D、s[j]=s[i]

器变量extern外部变量static静态变量

A、ints

B、unsignedsD、条件成立时,它们有可能一次也不执行

C、shorts

[答案]B

Dslongs

【解析】注意区别while、do…while两种循环结构的异同:while循环是先判断条件是

【答案】D否成立,成立时才执行;而do…while先执行再判断,它至少执行一次。

14、下列关于函数参数的叙述中,正确的是017、变量a所占的内存字节数是。

A、在函数原型中不必声明形参类型unionu{

B、函数的实参和形参共享内存空间charst[4];

inti;

C、函数形参的生存期与整个程序的运行期相向

long1;

D、函数的形参在函数被调用时获得初始值

);

structA{

【答案】D

intc;

15、下列程序执行后输出的结果是。unionu;

intd=l;}a;

fun(intp)A、4

(B、5

intd=5;C、6

d+=p++;D、8

printf("%d,〃,d);

)【答案】C

main()

【解析】结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存

(

长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变

inta=3;

fun(a);量u最大长度为4个字节,故选C。

d+=a++;

18、有以下程序

printf(z/%d\nzz,d);

main()

)

(

A、8,4intx=011;

B、9,6printf(/z%d\n,z,++x);

C、9,4

D、8,5)

程序运行后的输出结果是O

【答案】AA、12

B、11

16、对于while、do…while循环结构,正确的说法是

C、10

A、只是表达形式不同

D、9

B、do-while结构中的语句至少执行一次

C、while结构中的语句至少执行一次【答案】C

19、若有定义:inta[10],则对数组a元素的正确引用是。【答案】true

A、a[10]

B、a[3.5]()6、c语言标准输出操作中,putcharO函数可以输出显示一个字符串。

C、a(5)

【答案】false

D、a[0]

()7、用字符串常量给数组赋初值时,如果提供的字符个数大于数组长度,则系统报

【答案】D

错。

20、设有以下说明语句:

typcdefstructstu【答案】true

(

()8、使用strcpy(字符数组,字符串)函数时,字符数组长度必须足够大。

inta;

floatb;

【答案】true

}stutype;

则下面叙述中错误的是。

()9、函数调用可以出现在执行语句中,但不能出现在表达式中.

A、struct是结构类型的关键字

B、structstu是用户定义的结构类型【答案】false

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名()10、在标准c中,使用所有输入输出函数必须包含"stdio.h”文件

【答案】C【答案】false

二、判断题(每小题2分,共20分)三、编程题(每小题分,共40分)

()1、变量的值保存在内存单元上,是可以被改变的。()1、求l+2!+3!+...+20!的和(本题10分)

【答案】true【答案】程序分析:此程序只是把累加变成了累乘。

程序源代码:

()2、在标准c中,没有逻辑型数据,故不能使用逻辑表达式。mainO

|

【答案】false

floatn,s=0,t=l;

()3、字符串常量是由一对双引号括起来的字符序列。for(n=l;n<=20;n++)

{

【答案】truet*=n;

s+=t;

()4、continue语句不仅可以出现在循环体语句中,还可以出现在其他任何地方。

)

【答案】falseprintf("l+2!+3!...+20!=%e\n",s);

()5、函数strcpy(strl,str2);

的功能是将字符串str2复制到字符串strl中。2、用起泡法对十个数据排序(数组实现)(本题14分)

【答案】#include<stdio.h>inti,j,k;

MH

main()scanf(%d%d%dt&date.y,&date.m,&date.d);

(k=date,d;

inti,j,t;if(date.m>l)k+=31;

staticinta[10]={5,7,4,2,3,6,1,0,9,8};if(date.m>2)k+=28;

for(j=0;j<9;J++)if(date.m>3)k+=31;

(if(date.m>4)k+=30;

for(i=0;i<9-j;i++)if(date.m>5)k+=31;

(if(date.m>6)k+=30;

if(a>a)if(date.m>7)k+=31;

■if(date.m>8)k+=31;

t=a;a=a;a=t;if(date.m>9)k+=30;

}if(date.m>10)k+=31;

)if(date.m>ll)k+=30;

)if(date.y%4==0&&date.y%100!=01Idate.y%400==0)k++;

for(i=0;i<10;i++)printf("%d",k);

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

}

3、题目描述,定义一个包括年、月、日的结构体变量,读入年、月、日,计算该日在当

年中是第几天。注意闰年问题。

输入

三个整数,分别表示年、月、日。保证输入是实际存在的日期,且年份在1000至3000之

间(包含1000和3000)。输出

输出该日期是一年中的第几天。

请注意行尾输出换行。

样例输入

20121221

样例输出

356(本题16分)

【答案】#include<stdio.h>

intmain(){

structdd{

inty,m,d;

}

date;

C语言程序设计测试卷(二)4、以下叙述中正确的是o

(总分100分,考试时长90分钟)A、对于逻辑表达式:a++||b++,设a的值为1,则求解表达式的值后,b的值会发生改

题号一二三总分阅卷人

B、对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后,b的值会发生改

分值402040100变

C、else不是一条独立的语句,它只是if语句的一部分

得分D、关系运算符的结果有三种

【答案】C

■题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。

【解析】B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的结果发生

■考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。

改变;D选项中,关系运算符的结果有真和假两种。因此C选项正确

一、单项选择题(每小题2分,共40分)

5、下面程序的运行结果是o

1、不合法的常量是:—O#include<stdio.h>

A、'\2'voidmain()

B、〃〃(

inty=10;

C、'3'

do

D、'\483'(

y—;

【答案】D

)

2、以下定义语句中,错误的是owhile(—y);

printf(〃%d\n〃,y一);

A^inta[]={

)

1,2};

A、-1

B、chara[3];

B、1

C、chars[10]="test";

C、8

D、intn=5,a[n];

D、0

【答案】D

【答案】A

3、若变量已正确说明为float类型,要通过语句scanf(,/%f%f%f",&a,&b,&c);给a【解析】该题可以使用一个简单的做法,要想程序退出循环,则必一y的值为0,也就是

予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是o退出循环是y的值为0。

A、102233

6^若有定义:intx,*pb;则正确的赋值表达式是。

B、10.0,22.0,33.0

A、pb=&X

C、10.022.033.0

B、pb=X

D、10V回车>22〈回车>33V回车〉

C^*pb=&x

【答案】BD>*pb=*x

【解析】用scanf()读取从键盘输入的数据时,中间不能加逗号,要用空格隔开

【答案】A

7、有以下程序:【答案】B

main()

11、若有定义:inta[3][4];不能表示数组元素a[l][l].

intk=_3:if(k<=O)printf("****\n")elseprintf("&&&&\n");A、*(a[l]+l)

)B、*(&a[l][l])

程序的输出结果是o

C、(*(a+l)[1])

A、输出####D、*(a+5)

B、输出&&&&

C、输出####&&&&【答案】D

D、有语法错不能通过编译

12、c语言程序中必须有的函数是.

【答案】I)A^ftinclude"stdio.h"

B、main

8、有以下程序

C、printf

main()

D、scanf

(

charp[]={'a','b',"c'),q[10]={,a','b','c');

【答案】B

printf("%d%d\n”,strlen(p),strlen(q));

}13、以下叙述正确的是o

以下叙述中正确的是«

A、可以把define和if定义为用户标识符

A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B、可以把define定义为用户标识符,但不能把if定义为用户标识符

B、由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3

C、可以把if定义为用户标识符,但不能把define定义为用户标识符

C、由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3

D、define和if都不能定义为用户标识符

D、由于p和q数组中都没有字符串结束符,故长度都不能确定

【答案】B

【答案】B

【解析】C语言中的保留字,而define不是保留字。用户标识符不允许使用保留字。

9、在c语言程序中,表达式5%2的结果是。

14、已有定义intk=2;

A、2.5int*pl,*p2;

B、2且pl,p2均指向变量k,下面不能正确执行的赋值语句是o

C、1A、k=*pl+*p2;

D、3B、p2=k;

C、pl=p2;

【答案】C

D、k=*pl*(*p2);

10、字符串"\\\"abc\"\\〃的长度是。

【答案】B

A、11

715、下面程序的输出结果是

C、5main()

D、3

intb[]={l,2,3,4,5,6,7,8,9,0},*q;【解析】同类型的结构体变量可以进行整体赋值。结构体变量的地址可以作为实参传递

q二b;给函数。结构体数组ing可以作为实参传递给函数。结构体成员可以包含指向本结构体

printf("%d\n",*(q+0));

的指针成员。本题答案为D选项。

)

A、018、以下四个程序中,完全正确的是o

B、1A、^include<stdio.h>

C、10mainO;{/"programming*/printf("programming!\n");}

D、9B、#include<stdio.h>

main()

【答案】B

{/*/programming/*//printf("programming!\n〃);}

16、执行下面的程序后,a的值为oC>#include<stdio.h>

main()mainO

({/*programming*/printf(''programming!\n,z);}

inta,b;D、include<stdio.h>

for(a=l,b=l;a<=10;a++)

mainO

(

{/*/*prograinming*/*/printf(''programming!\nzz);}

if(b%3==l)

(

【答案】C

b+=3;

continue;19、若有以下的说明和语句,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论