09C语言练习模拟考卷福州大学工程技术学院Word文档格式.docx
- 文档编号:17371485
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:31.02KB
09C语言练习模拟考卷福州大学工程技术学院Word文档格式.docx
《09C语言练习模拟考卷福州大学工程技术学院Word文档格式.docx》由会员分享,可在线阅读,更多相关《09C语言练习模拟考卷福州大学工程技术学院Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
B)ch=7;
C)ch=\77;
D)ch=7;
10.设有定义intx=2,y=4;
则以下不合法的if语句形式是()。
A)if(x>
y&
&
x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("
%d"
x)elsescanf("
D)if(x<
y){x++;
y++;
11.请阅读以下程序段,选择正确的选项()。
inta=0,b=0,c=0;
if(a=b+c)printf("
***\n"
);
elseprintf("
$$$\n"
A)有语法错误,不能通过编译B)可以通过编译但不能通过连接
C)输出:
***D)输出:
$$$
12.若有定义和语句:
inti=10;
则下程序段运行后i的值是()。
switch(i)
{case9:
i+=1;
case10:
case11:
break;
default:
A)14B)13C)12D)无答案
13.下面程序段的运行结果是()。
intX=3;
while(X!
=0)printf("
X--);
A)是死循环B)21C)210D)321
14.以下程序段()。
intX=5;
do{X=X*X;
}while(!
X);
A)是死循环B)循环执行二次C)循环执行一次D)有语法错误
15.下面程序段的输出结果是()。
inti;
for(i=1;
i<
=5;
i++)
{if(i%2)printf("
*"
elsecontinue;
#"
}
printf("
$\n"
A)*#*#$B)*#*#*#$C)#*#*#*$D)#*#*$
16.以下程序段的输出结果是()。
inty=0,x=2,z=2.5;
y=x>
=z?
x:
z;
printf("
%d,%d,%d\n"
x,y,z);
A)2,2,2.5B)2,2,2C)2,2.5,2.5D)有语法错误
17.以下程序段的输出结果是()(假设sizeof(int)的值为2)。
inti,a[10]={1,2};
for(i=2;
10;
i++)a[i]=a[i-2]+a[i-1];
,a[2],a[3],sizeof(a));
A)3,5,20B)3,5,4C)2,0,4D)有错
18.以下程序的运行结果是()。
intfun(intx)
{inty;
y=3*(x++)-4;
returny;
voidmain()
{inta=10,b=20;
b=fun(a);
%d,%d\n"
a,b);
A)10,20B)11,26C)29,26D)10,26
19.以下程序的运行结果是()。
{inta=2,i;
intfun(int);
for(i=0;
2;
i++)printf("
%4d"
fun(a));
{inty=1;
staticintz=2;
x++;
y+=1;
++z;
return(x+y+z);
A)8,8B)8,11C)7,8D)8,9
20.以下程序运行后的输出结果是()。
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)*n;
y=f(4);
%d\n"
y);
A)24B)2C)6D)12
21.若有定义chars1[]="
more"
,s2[8],*s3,*s4="
much"
则错误的是()。
A)strcpy(s1,"
can"
B)strcpy(s2,"
C)strcpy(s3,"
D)strcpy(s4,"
22.以下程序的输出结果是()。
voidfun(floatx,float*y,float*z)
{*y=*y-1.0;
*z=*z+x;
x=2*x;
{floata=2.5,b=9.0,*pta,*ptb;
pta=&
a;
ptb=&
b;
fun(a-b,pta,ptb);
%.1f,%.1f\n"
A)2.5,9.0B)1.5,2.5C)-13,2.5D)-6.5,2.5
23.在说明语句:
int(*fun)(void);
中,标识符fun代表的是()。
A)一个返回值为指针型的函数名B)一个用于指向整型数据的指针变量
C)一个用于指向整型函数的指针变量D)以上都不正确
24.设有一结构体类型变量person的定义如下:
structdate{intyear;
intmonth;
intday;
};
structworklist
{charname[20];
charsex;
structdatebirthday;
}person;
若对person的出生年份进行赋值时,下面正确的赋值语句是()。
A)person.year=1986;
B)person.birthday.year=1986;
C)birthday.year=1986;
D)year=1986;
25.若有以下的说明和定义,则sizeof(structabc)的值是()。
structabc
{charx;
/*假设char占一个字节*/
inty;
/*假设int占二个字节*/
floatz;
/*假设float占四个字节*/
unionhh{chars[5];
intm[2];
}m;
};
A)9B)16C)12D)以上都不正确
二、判断题(判断以下各描述的正确与否,将结果填在答题纸上。
每小题1分,共10分):
1.语句printf("
a=5;
"
是一条典型的赋值语句。
2.下面的变量名都是不合法的:
3g、87、67h2、h22、2h。
3.switch选择结构中必须有default子句。
4.如果(x>
y&
a<
b)为真,那么表达式(x>
y||a<
b)亦为真。
5.在C语言中,break;
语句只能与switch语句配合使用。
6.一个数组能够存储许多不同类型的值。
7.在C语言中,实参向形参的数据传递采用的是单向值传递的方式。
8.指向不同类型数组的两个指针不能进行有意义的比较。
9.因为枚举类型是用户定义的数据类型所以它不属于基本数据类型。
10.关系运算符>
、>
=、<
、<
=、==和!
=具有相同的优先级。
三、填空题(将要补充的内容填在答题纸上。
每空1分,共10分):
1.二维数组a的第三行第五列的元素的名字是。
2.指针变量是把另一个变量的作为其值的变量。
3.格式控制符用来打印字符串。
4.所有的字符串都是以字符结束的。
5.有如下定义inta[3][10],该数组共有个数组元素。
6.在C程序的函数中声明的变量称作变量。
7.函数直接或间接调用自身的操作称作调用。
8.在C语言中,用关键字引出结构体类型的定义。
9.若有定义chars[10]="
%d\t\0a12"
;
则strlen(s)的值为。
10.将此代数式转换成相应的C语言表达式
四、改错题(改正下列各题中的错误,将改正后的结果填在答题纸上。
每道题都存在错误,且错误在/**/和/**/之中。
每个错误2分,共10分。
):
1.下程序是某生编写的已知直角三角形的二个直角边x和y,求其面积s的程序段。
doublex,y,s;
/**/scanf("
%d%d"
s=x*y/2;
/**/printf("
s=%lf\n"
s);
2.以下是已知三边求三角形面积的程序段(要求输入的三边必须能构成三角形,即任意两边之和必须大于第三边。
公式为p=(a+b+c)/2,面积=
#include<
math.h>
floata,b,c,p,s;
/*a,b,c中依次存放三边的数值,s存放面积之值*/
%f%f%f"
a,&
b,&
c);
/**/if(a+b<
=c&
a+c<
=b&
b+c<
=a)
不能构成三角形!
\n"
else
{p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
/**/
s=%f\n"
}
3.下面是某学生编写的求10个学生某门课平均成绩的程序段。
#defineN10
floatsum,av;
/**/floatscore[N];
for(i=1,sum=0.0;
=N;
{scanf("
%f"
score[i]);
sum+=score[i];
}/**/
av=sum/N;
sum=%.1f\n"
sum);
4.下面是某学生编写的程序段。
该程序的功能是:
输入任意2个整数依次存放在变量a和b中;
要求输出时,a中存放的必须是较大的数,b中存放的是较小的数。
inta,b,t;
b);
a=%d\tb=%d\n"
/**/if(a<
b)t=a;
a=b;
b=t;
5.以下程序的功能是打印出所有的水仙花数(水仙花数是一个3位整数,它的个、十、百位上的数字的3次方之和等于该数。
如135就是个水仙花数,135=13+33+53)。
inti,gw,sw,bw;
/*gw,sw,bw中依次存放个、十、百位上的数字*/
for(i=100;
=999;
/**/{bw=i/100;
sw=(i-bw*100)/10;
gw=i%10;
if(bw*bw*bw+sw*sw*sw+gw*gw*gw=i)
printf("
%5d"
i);
五、阅读理解题(将程序的运行结果或功能填在答题纸上。
每空2分,共20分。
1.已知A的ASCII码的十进制值为65,字符数字0的码值为48,则下面程序段的运行结果是()。
charch2,ch2;
ch1=D+5-3;
ch2=0+5-3;
%d,%c\n"
ch1,ch2);
2.若程序运行时输入:
this<
空格>
is<
a<
test<
,则下面程序的输出结果是()。
stdio.H>
voidmain()
{charstr[80];
gets(str);
printf("
myster(str));
intmyster(char*s)
{intx=0;
while(*s!
=\0)
{s++;
++x;
returnx;
3.以下程序的输出结果是()。
{intx=1,total=0,y;
while(x<
=4)
{y=x*x;
%d,"
total+=y;
++x;
Totalis%d\n"
total);
4.下面程序段的功能是(),若x=2,y=3则输出结果是()。
intx,y,i,p;
for(i=1,p=1;
=y;
i++)p*=x;
p);
5.假设已有如下定义:
inti,j,p;
,则以下程序段的输出结果是()。
for(i=2;
i+=2)
for(p=0,j=i;
j<
j++){p+=j;
%d\t"
}}
6.以下程序段的功能是(),若x=6则输出结果是()。
intx,i;
x);
=x-1;
if(x%i==0)break;
if(i>
x)printf("
%dis!
x);
elseprintf("
%disnot!
7.以下程序运行后的输出结果是()。
structSTU{intnum;
floatScore;
{structSTUs[2]={10002,90.5,10004,87.5},s1,*p;
s1.num=s[1].num;
s1.score=s[1].score;
p=&
s1;
%d#%.1f\n"
,s1.num,p->
score);
8.以下程序段的输出结果是()。
chars[]="
CAT"
*pstr=s;
while(*pstr!
=\0)printf("
%s#"
pstr++);
9.假设已有如下定义:
intx;
for(x=10;
x<
=30;
x++)
if(x%3==0)
if(x%5==0)
%d,"
10.以下程序段的输出结果是()。
enumCOLOR{RED,GREEN,BLUE}x;
x=GREEN;
六、编程题(根据程序的功能和要求,将程序补充完整[不允许额外添加其他语句]。
将内容填写在答题纸上。
题1~3每空2分,共20分;
题4-每句1分,共5分):
1.编写一个程序,要求用户输入两个值给变量a和b,然后打印出这两个数的和、积和余数。
(注:
不允许使用强制类型转换运算符和系统提供的取整函数)。
stdio.h>
{
(1)a,b;
scanf(
(2));
printf((3));
2.编写一个从数组a中找出最大值max和最小值min的程序段。
inta[5]={1,9,3,4,2},i;
(4);
for(i=1;
5;
{if((5))max=a[i];
if((6))min=a[i];
max=%d\nmin=%d\n"
max,min);
3.下程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,则打印此数后,请立即结束循环;
若未找到,则给出打印信息“notexist!
”。
{intm,p;
for(m=1;
m<
=10;
m++)
{scanf("
p);
if(p%7==0)
{printf("
(7);
if(m>
10)printf("
notexist!
4.以下程序的功能是求右下方函数的值(要求用标准库函数来计算某数的绝对值)。
math.h>
{doublex;
doublef(doublex);
f(x)=%.2f\n"
f(5.0));
doublef(doublex)
{(8);
(9);
return(10);
5.分别用一条语句完成下列各要求(以下各语句是相关的)。
假定已有如下定义:
floatnumbl=7.5,numb2;
(11)把变量fPtr声明为指向float类型的对象的指针。
(12)把变量numbl的地址赋给指针变量fPtr。
(13)用间接访问方式打印出fPtr所指向的对象的值。
(14)用间接访问方式把fPtr所指向的对象的值赋给变量numb2。
(15)通过指针变量fPtr将键盘输入的值存放在其所指向的变量中
姓名:
学号:
卷面成绩:
答案必须写在答题纸上。
写在试卷上的答案无效!
!
)
一、单选题(共25题,1分/题,共25分)
题号
1
2
3
4
5
6
7
8
9
10
11
12
13
答案
C
A
B
D
14
15
16
17
18
19
20
21
22
23
24
25
二、判断题(对的打√,错的打×
。
共10题,1分/题,共10分)
×
√
三、填空题(共10题,1分/题,共10分)
a[2][4]
地址
%s
\0
30
局部
递归
struct
(x+y+z)/sqrt(x*x+y*y+z*z)
四、改错题(共5题,2分/题,共10分):
答案(只要求填写改正后的结果)
%lf%lf"
||||
i=0,i<
N;
(或&
score[i-1]score[i-1])
{t=a;
}(或t=a,a=b,b=t;
)
==
五、阅读理解题(共10题,2分/题,共20分):
题1
70,2
题2
五、阅读理解题续
题3
1,4,9,16,Totalis30
题4
xy,8
题5
817
题6
判断输入的数是否为素数,6isnot!
题7
10004#87.5
题8
CAT#AT#T#
题9
15,30
题10
六、编程题(共5题,题1~4-2分/空;
题4-1分/题;
共25分)
(1)
int或其他整型数据类型
(2)
a,&
b(或其相应的整型格式控制符)
(3)
a+b,a*b,a%b(或其相应的整型格式控制符)
(4)
max=min=a[0]
(5)
a[i]>
max
(6)
a[i]<
min
(7)
break
(8)
doubley;
或任意的double型变量
(9)
y=(fabs(x)-2)/(x*x+1)
(10)
y
(11)
float*fptr;
(12)
fptr=&
numb1;
(13)
*fptr);
(14)
numb2=*fptr;
(15)
fptr);
(或scanf("
*fptr);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09 语言 练习 模拟 考卷 福州大学 工程技术 学院