四川某美术学院C语言程序设计预测卷(十二套试卷)及答案_第1页
四川某美术学院C语言程序设计预测卷(十二套试卷)及答案_第2页
四川某美术学院C语言程序设计预测卷(十二套试卷)及答案_第3页
四川某美术学院C语言程序设计预测卷(十二套试卷)及答案_第4页
四川某美术学院C语言程序设计预测卷(十二套试卷)及答案_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计预测卷(一)B、inti=l,j=l;I=j=((i=3)++);i+=i+=2;

(总分100分,考试时长90分钟)C,inti==0,j=0;

D、inti=0,j=l;15(i=2,i+(j=2));(j==l)?i+=3:i=2;

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

7、若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是一

1、为了避免嵌套的条件分支语句if-else的二义性,c语言规定:c程序中的else总是与

A、a[0][4]

()组成配对关系。

B、a[l][3]

A、缩排位置相同的if

C,a[0][3]

B、在其之前未配对的if

D、a[l][4]

C、在其之前未配对的最近的if

D、同一行上的if8、如果逻辑与(and)运算的结果为"真",与它所连接的两个条件必须是_______。

A、前一个为“真”,后一个为“假”

2、下列数据中是合法的整型常量的是一。

B、前一个为“假”,后一个也为“假”

A,3E2

C、前一个为真,后一个也为真

B、029

D、前一个为假,后一个为真

C、-32768

D、6e+0079、在宏定义#definePI3.14159中,用宏名代替一个。

A、常量

3、c语言中,关系表达式和逻辑表达式的值是。

B、单精度数

A、0

C、双精度数

B、1

D、字符串

C、0或1

D、T或"F'10、以下数组定义中错误的是=

A,intx[][3]={0};

4、c语言的跳转语句中,对于break和continue说法正确的是________。

B、intx[2][3]={{1,2},{3,4},(5,6}};

A,break语句只应用于循环体中

C、intx[][3]={{1,2,3},{4,5,6}};

B、continue语句只应用于循环体中

D、intx[2]E3]={1,2,3,4,5,6};

C、break是无条件跳转语句,continue不是.«

D、break和continue的跳转范围不够明确,容易产生问题11,若有以下函数首部:intfun(doublex[10],int*n)则下面针对此函数的函数声明

语句中正确的是_______。

5、c语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为_______。

A、intfun(doublex,int*n);

A、void

B、intfun(double,int);

B,double

C、intfun(double*x,intn);

C、int

D、intfun(double*,int*);

D、char

12、有定义语句:intx,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值

6、运行下述程序段后,i值为4的是。

11,变量y得到数值12,下面四组输入形式中,错误的是

A,inti=l,j=0;

A、1112〈回车〉

B、11,12〈回车〉A、switch(a)

C、11,12〈回车〉casea:a++;break;

D、11,(回车〉caseb:b++;break;

12〈回车〉B、switch(a+b)

case1:a+b;break;

13、定义如下一维数组:inta[5],*p;则下列描述错误的是一

case1:a-b

A、表达式p=p+l是合法的

C、switch(a*a)

B、表达式a=a+l是合法的

case1,2:++a;

C、表达式p-a是合法的

case3,4:++b:

D、表达式a+2是合法的

D、switch(a/10+b)

14、有如下定义case5:a/5:break:

structpersondefault:a+b;

(

charname[9];17、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是

intage;structstu{

}inti;

intname;

structpersonclass[10]={'rjohn,r,17,*'paul0,19,"mary”,18,"adam",16};}st,*p;p=&st;

根据上述定义,能输出字母a的语句是______。A、st.i

A、printf(,'%c\nn,class[3].name);B、*p.i

B、printf("%c\nw,class[3].name[0]);C、(*p).i

C、printf(w%c\nM,class[4].name[l]);D、p->i

D、printf("%c\n",class[4].name[0]);

18、有以下程序

15、以下程序的输出结果是omain()

#defineM(x,y,z)x*y+z(

main()inta,b,d=25;

(a=d/10%9;

inta=l,b=2,c=3;b=a&&(-l);

printf(n%d\n'\m(a+b.b+c,c+a));printf(n%d,%d,r,a,b);

})

A、19程序运行后的输出结果是o

B、17A、6,1

C、15B、2,1

D、12C、6,0

D、2,0

16、已知:inta,b;下列switch语句中,()是正确的。

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

#include<stdio.h>1、若有定义:inta=5,b=2,c=l;则表达式a-bVc||b==c的值是。

mainO

(2、已知b=2,则表达式“b+=b-=3"的值是o

inta[]=l,2,3,4,5,6,7,8,9,0,*p;

p=a;3、共用体类型变量的定义关键字是o

printf(r,%d\nn,*p+9);

)4、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10});

A、0则初始化后,得到的初值是[1],a[2][l]得到的初值是12初

B、1

5、结构化程序设计的3种基本结构是:顺序结构、结构、循环结构,这三种基本

C、10

结构构成了复杂的c语言程序。

D、9

20、有以下程序6、求主次对角线之和。

structstumain()

((

charname[10];staticinta[][3]={9,7,5,1,2,4,6,8};

intnum;inti,j,sl=0,s2=0;

floattotalscore;

for(i=0;i<3;i++)for(j=0;j<3;j++)

};

(

voidf(structstu*p)

(if()sl=sl+a[i][j];

structstus[2]={{nsundann,20044,550},{Mpenghua",20045,537}},*q=s;if()s2=s2+a[i]Ej];

++p;)

++q;printf(M%d\n%d\nM,si,s2);

*p二*q;

)

)

main()

7、在c语言中,若确实不要求返回函数值,则应将函数定义为()类型。

(

r,

structstus[3]={{"yangsan20041,703},{1isiguo",20042,580}};8、inty=l,x,*p,a[]={2,4,6,8,10};

f(s);

p=&a[l];

printf(M%s%d%3.0f\nn,s[1].name,s[l].num,s[l].totalscore);

for(x=0;x<3;x++)y+=*(p+x);

}

printf(w%d\nn,y);

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

A、SunDan20044550程序的输出结果y的值是o

B、Penghua20045537

9、以下程序的运行结果是o

C、LiSiGuo20042580

main()

D、SunDan20041703

二、填空题(每小题2分,共20分)intk,a[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;k<3:k++)printf("%d,",a[k][k]);

}

10、以下程序的输出结果是。

main()

if(2*2==5<2*2==4)printf("t");

elseprintf("f");

}

三、编程题(每小题分,共40分)

1、编写程序:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出

其长度。(本题10分)

2、编写程序:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表

示,60-89分之间的用B表示,60分以下的用C表示。(本题14分)

3、题目描述

有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩。读入这10个学生的

数据,要求输出3门课程的总平均成绩,以及个人平均分最高的学生的数据(包括学

号、姓名、3门课程成绩、平均分数)。

输入

共有10行,每行包含了一个学生的学号(整数)、名字(长度不超过19的无空格字符

串)和3门课程的成绩(0至100之间的整数),用空格隔开。

输出

第一行包含了3个实数,分别表示3门课程的总平均成绩,保留2位小数,每个数之后

输出一个空格。

第二行输出个人平均分最高的学生的数据,与输入数据格式相同。如果有多位个人平均

分最高的学生,输出按照输入顺序第一个最高分的学生数据。

请注意行尾输出换行。

样例输入

样例输出

85.6087.9090.40

105EEE929394(本题16分)

参考答案二、填空题

1、0

一、单项选择题2、~2

1、C3、union

2、C4、【1】0[2]6

3、C5、选择#分支

4、B6、'i+j=2']

【解析】break语句和continue语句都是C的跳转语句。break语句又称为跳出语句,7、void

它可以用在循环语句和switch语句中。在switch语句中,break用来使执行流程跳出8、19

switch语句。在循环语句中,break语句用来使执行流无条件跳出本层循环体。9、59

continue语句又称为继续语句,它仅用在循环语句中。它的功能是:结束本次循环,接10、f

着进行下一次是否执行循环的条件判定。三、编程题

5、C1、^include<stdio.h>

6、B#include<stdlib.h>

7、BintmainO

8、C(

9、Dintlen;

10、Bcharstr[20];

11、Dprintf("请输入字符串:\nn);

【解析】本题中的fun函数有两个参数,一个类型是double型一维数组,另一个是intscanf(M%s'r,str);

型指针。而在C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所len=length(str);

以本题的正确答案是选项D。printfC字符串有%d个字符。"Jen);

12、A}

13、B〃求字符串长度

14、Bintlength(char*s)

15、D(

16、Dinti=0;

17、Bwhile(*s!=,\0*)

【解析】本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,(

即st.i,也可以用等价的指针形式即(*p).i和p->i。

i++;

18、Bs++;

19、C)

【解析】此题考查了指针引用一维数组元素的方法。*p+9因为运算符的优先级高returni;

于“+”,所以输出结果为p指向的元素1,然后加9,值为10。}

20、B

2、#include<stdio.h>stu[i+l].num=stu[i].num;

intmain()strcpy(stu[i+l].name,stu[i].name);

(stu[i+l].a=stu[i].a;

intscore;stu[i+l].b=stu[i].b;

chargrade;stu[i+l].c=stu[i].c;

printf("请输入分数:");)

scanf(,&score);)

grade=(score>=90)?'A':((score>=60)?,B,:;printf("%.2f%.2f%.2f\n",x/10.0,y/10.0,z/10.0);

printf("%c'n",grade);printf(r,%d%s%d%d%d\nM,stu[9].num,stu[9].name,stu[9].a,stu[9].b,stu[9].c);

return0;)

)intmain(){

3、#include<stdio.h>structpeoplestu[10];

#include<string.h>input(stu);

structpeople{print(stu);

intnum,a,b,c;return0;

charname[10];}

);

intinput(structpeoplestu[]){

for(inti=0;i<10;i++)

scanf(n%d%s%d%dnum,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c)

)

intprint(structpeoplestu[]){

doublex=0,y=0,z=0;

for(inti=0;i<10;i++){

x=x+stu[i].a*l.0;

y=y+stu[i].b*l.0;

z=z+stu[i].c*l.0;

}

for(inti=0;i<10;i++){

if((stu[i].a+stu[i].b+stu[i].c)>=(stu[i+l].a+stu[i+l].b+stu[i+l].c)){

C语言程序设计预测卷(二)B、f=l;

(总分100分,考试时长90分钟)for(i=l;i<=n;i++)f*=i;for(i=l;i>=2;i--)

C、f=l;

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

D、f=l;

1、在16位编译器环境下,double类型占多少字节?for(i=n;i>l;i++)f*=i;for(i=n;i>=2;i一)

A、2

7、若有定义:inta=4,b=5;floatx=3.4,y=2.1;则下列表达式的值为

B、4

(float)(a+b)/2+(int)x%(int)y

C、1

A、5.5

D、8

B、55

2、若intx=l,y=2,z=3则表达式xVz?y:z的结果是0C、5.500000

A、-1D、55.00000

B、3

8、以下关于运算符优先顺序的描述中正确的是。

C、2A、关系运算符〈算术运算符〈赋值运算符V逻辑与运算符

D、0

B、逻辑与运算符〈关系运算符〈算术运算符〈赋值运算符

3、下列描述正确的是_______oC、赋值运算符V逻辑与运算符〈关系运算符〈算术运算符

A、表示m>n为true或m<n为true的表达式为m>n&&m<nD、算术运算符〈关系运算符〈赋值运算符〈逻辑与运算符

B、switch语句结构中必须有default语句

9、若输入字符串:abode〈回车〉,则以下while循环体将执行多少次。

C、if语句结构中必须有else语句while((ch=getchar())!='e')printf("*");

D、如果至少有一个操作数为true,则包含“运算符的表达式为trueA、5

B、4

4、以下叙述中正确的是o

A、N-S流程图只能描述简单的顺序结构的程序C、6

D、1

B、程序的算法只能使用流程图来描述

C、结构化程序的三种基本结构是循环结构、选择结构、顺序结构10、若要定义一个具有5个元素的整型数组,以下错误的定义语句是o

D、计算机可以直接处理C语言程序,不必进行任何转换A、inta[5]={0};

B、intb[]={0,0,0,0,0}

5、下面函数的功能是oa(sl,s2)charsl[],s2[];while(s2++=sl++);

C、intc[2+3];

A、字符串比较

D、inti=5,d[i];

B、字符串复制

C、字符串链接11、以下叙述错误的是o

D、字符串反向A、一个C程序可以包含多个不同名的函数

B、一个C程序只能有一个主函数

6、设变量已正确定义,则以下能正确计算f二n!的程序段是o

C、C程序在书写时,有严格的缩进要求,否则不能编译通过

A、f=0;

D、C程序的主函数必须用main作为函数名

12、为表示匕和b都不等于0”,应使用的c语言表达式是B、9,6

A、(a!=0)||(b!=0)C、9,4

B、a||bD、8,5

C、!(a=0)&&(b!=0)

16、以下叙述中正确的是o

D、a&&b

A、while循环的循环体至少执行1次

13、若要求从键盘读入含有空格字符的字符串,应使用函数B.while循环的循环控制条件比do-while循环的循环控制条件复杂

A、getc()C、do-while循环体不能是复合语句

B、gets()D、do-whi1循环的循环体至少执行1次

C、getchar0

17、在c语言中,系统为一个结构体变量分配的内存是________o

D、scanf()

A、各成员所需内存量的总和

14、enumaB、结构体第一个成员所需的内存量

(C、成员中占内存量最大者所需的容量的整数倍

sum=9,mon=-l,tue

D、结构体中最后一个成员所需的内存量

)

18、以下程序段的输出结果是o

最了________o

intk,j,s;

A、枚举变量for(k=2;k<6;k++,k++)

B、3个标识符(

C、枚举数据类型s=l;

for(j=k;j<6;j++)s+=j;

D、整数9和-1

)

15、下列程序执行后输出的结果是oprintf(M%d\nM,s);

intd=l;A、1

fun(intp)B、9

(C、11

intd=5;

D、10

d+=p++;

printf("%d,",d);19、下面程序段的运行结果是chara[]=,,lanuage\*p;p=a;while(*p!=,u')

)printf(H%cw,*p-32);p++;

main()A、LANGUAGE

(

B、language

inta=3;

fun(a);C、LAN

d+=a++;D、langUAGE

printf("%d\n",d);

20、有以下程序

)

typedefstruct

A、8,4

charname[9];6、有一下程序

charsex;itinclude<stdio.h>

fl

温馨提示

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

评论

0/150

提交评论