模拟题6Word下载.docx
《模拟题6Word下载.docx》由会员分享,可在线阅读,更多相关《模拟题6Word下载.docx(114页珍藏版)》请在冰豆网上搜索。
=’\0’还可以写成。
charstr[80];
for(i=0;
str[i]!
=’\0’;
i++)
putchar(str[i]);
A)str[i]!
=NULLB)i<
80C)i<
=80D)i<
=80
(15)设变量定义为:
intn,*p;
charch,*q,*g;
,则语句是不正确的。
A)p=&
n;
g=q=&
ch;
B)p=&
q=&
C)p=&
g=&
D)p=&
g=p;
(16)设变量定义如下,则对其中的结构分量num正确的引用是。
structstudent{
intnum;
charname[20];
floatscore;
}stud[10];
A)stud[1].num=10;
B)student.stud.num=10
C)struct.stud.num=10;
D)structstudent.num=10;
(17)对于以下递归函数f,调用函数f(2,‘1’,‘2’,‘3’)的输出结果是。
voidf(intn,chara,charb,charc)
{
if(n==1)
printf(“%c->
%c#”,a,b);
else{
f(n-1,a,c,b);
%c#”,a,b);
f(n-1,c,b,a);
}
}
A)1->
2#1->
3#3->
2#B)3->
2#1->
3#
C)‘1’->
‘3’#‘3’->
‘2’#‘1’->
‘2’#D)1->
3#1->
2#3->
2#
(18)下列程序段的输出结果是。
intt,a[3]={10,5,1};
int*p;
for(p=a;
p<
a+3;
p++)
t=t+*p;
printf(“%d”,t);
A)15B)16C)10D)不确定
(19)设变量定义为:
int*p[3],a[3];
,是正确的赋值。
a[0]B)*p=**a
C)p[0]=aD)**p=a
(20)对于以下的变量定义,语句在语法和语义都是正确的。
structnode{
floatx,y;
chars[10];
}point={1,2,”abc”},*p;
A)*p=point;
point;
C)point=p;
D)p->
x=point.y;
三、
程序填空题(每空2分,共20分)
程序1【程序说明】根据下式计算s的值,要求精确到最后一项的绝对值小于10-6。
s=1-1/3+1/5-1/7+…
【程序】
#include<
stdio.h>
math.h>
voidmain()
{intflag=1,t=1;
(21);
while((22)){
item=flag*1.0/t;
s=s+item;
(23);
t=t+2;
printf(“s=%f\n”,s);
程序2【程序说明】验证歌德巴赫猜想:
任何一个大于6的偶数均可表示为两个素数之和。
例如6=3+3,8=3+5,…,18=7+11。
将6~100之间的每个偶数都表示成两个素数之和。
函数prime(m)用于判断m是否为素数。
素数就是只能被1和自身整除的正整数,1不是素数,2不是素数。
#include“stdio.h”
#include“math.h”
voidmain()
{inti,k;
intprime(intm);
for(i=6;
i<
=100;
i=i+2)
for(k=3;
k<
=50;
k++)
if((24)){
printf(“%d=%d+%d\n”,i,k,i-k);
break;
intprime(intm)
{
intk,n;
if(m==1)return0;
n=(int)sqrt(m);
for(k=2;
=n;
(25);
(26);
程序3【程序说明】输入一个字符串(少于80个字符),滤去所有的非八进制字符后,组成一个新的字符串(八进制形式),然后将其转换为十进制整数后输出。
函数stoi(str)将八进制形式的字符串str转换为十进制整数,例如,stio(“12”)的值为10(八进制12对应十进制10)。
{inti,k;
chars[10];
intstoi(char*str);
gets(s);
for(i=k=0;
s[i]!
if(s[i]<
=‘7’&
s[i]>
=‘0’)
(27);
(28);
printf(“digit=%d\n”,(29));
intstoi(char*str)
{inti,n=0;
(30);
returnn;
四、
程序阅读题(每题5分,共20分)
程序1
#include<
{intx=10023;
do{
printf(“%d#”,x%10);
x=x/10;
}while(x!
=0);
程序2
{inti,x=1,y=1;
for(i=1;
i<
=5;
i++){
x=x+y;
y++;
printf(“%d#”,x);
程序3
{intx=1,y=1;
voidf(intm,intn,int*px,int*py);
f(2004,70,&
x,&
y);
printf(“%d#%d#“,x,y);
f(2005,98,&
voidf(intm,intn,int*px,int*py)
{intk,flag;
inttab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
flag=m%4==0&
m%100!
=0||m%400==0;
for(k=1;
n>
tab[flag][k];
n=n-tab[flag][k];
*px=k;
*py=n;
程序4
/*假设读写文件的操作能正常完成*/
stdlib.h>
{charch,*s=”ACEDB”
intx;
FILE*in;
if((in=fopen(“file.txt”,”w”))!
=NULL)
while(*s!
=’\0’)
fputc(*s++,in);
fclose(in);
if((in=fopen(“file.txt”,”r”))!
while((ch=fgetc(in))!
=EOF){
switch(ch){
case‘A’:
x=95;
case‘B’:
x=85;
case‘C’:
x=75;
case‘D’:
x=60;
default:
x=0;
printf(“%d#”,x);
五、
程序设计题(每题10分,共30分)
1.输入x,计算并输出下列分段函数f(x)的值。
可以调用数学库函数;
平方根函数sqrt(),绝对值函数fabs()和幂函数pow()。
|x|x<
(x+1)1/20<
=x<
2
f(x)=
(x+2)32<
4
2x+5x>
=4
2.输出一张摄氏--华氏温度转化表,摄氏温度的取值区间是[-100度,150度],温度间隔5度。
要求定义和调用函数ctof(c),将摄氏温度C转换为华氏温度F,计算公式:
F=32+C*9/5。
3.输入一个正整数n(1<
=n<
=6),再输入一个n行n列的矩阵,找出该矩阵中的绝对值最大的元素以及它的行下表和列下标。
试卷1参考答案
考试试卷1
一、判断题(正确用A表示,错误用B表示)
(1)A
(2)B(3)B(4)B(5)B
(6)A(7)A(8)A(9)B(10)A
二、单选题
(11)B(12)C(13)B(14)A(15)D
(16)A(17)D(18)D(19)C(20)B
三、程序填空题
1.(21)doubleitem=2,s=0;
(22)fabs(item)>
=1E-6
(23)flag=-flag
2.(24)prime(k)&
prime(I-k)
(25)if(m%k==0)return0
(26)return1
3.(27)s[k]=s[i,k++
(28)s[k]=’\0’
(29)stoi(s)
(30)n=n*8+(str[i]-‘0’)
四、程序阅读题
程序13#2#0#1#
程序22#4#7#11#16#
程序33#10#4#8#
五、程序设计题(略
模拟测试2
模拟考试试卷二
C语言程序的三种基本结构是顺序、选择和嵌套。
在C语言程序中,在函数内部定义的变量称为全局变量。
运算符“=”和“&
=”的优先级相同。
‘%f’是方式不正确的字符常量。
‘
运算符“+”不能作为单目运算符。
如果运算符“*”和“/”都是右结合的,这表达式10*6/5的值是10。
s(s-a)(s-b)(s-c)是合法的C语言表达式。
表达式!
!
6的值是6。
表达式~(~2<
<
1)的值是5。
对于变量定义:
inta[10],*p=a+8;
数组a的最后一个元素是p[1]。
(11)执行语句printf(“”,“A”);
将得到出错的信息。
A)%uB)%sC)%eD)%d
(12)设c是一个字符变量,求解表达式后,c的值不是1就是0。
A)c=getchar()!
=‘\n’B)(c=getchar())!
=‘\n’
C)c=’1’D)c=EOF
(13)下列定义中,定义的变量可以存放-123.4。
A)longaB)unsignedbC)intdD)floatc
(14)对于变量定义:
char*pp[100],pp是一个。
A)函数B)数组元素C)指针变量D)数组
(15)下列程序段的输出结果是。
char*str[]={“SUN”,“MOON”,“STAR”,“X”};
printf(“(%s,%c)”,*(st+1)+1,*(*(st+2)+2)+2);
A)(MOON,M)B)(OON,C)
C)(OON,Q)D)(OON,A)
(16)对于以下的变量定义,表达式是不正确的。
}point,*p=&
A)p->
x=2.0B)(*p).y=3.0
C)point.x=2.0D)p->
s=“a”
(17)下列程序段的输出结果是。
inta=10,b=0;
if(a>
15)
b=1;
elseif(a<
2)
b=2;
else
b=3;
printf(“%d”,b);
A)3B)2C)1D)0
(18)只有当输入的数据满足1<
=month<
=12时,循环语句才能正常退出。
A)do{scanf(“%d”,&
month);
}while(month>
=1||month<
=12);
B)do{scanf(“%d”,&
=1&
month<
C)do{scanf(“%d”,&
}while(month<
1||month>
12);
D)do{scanf(“%d”,&
=1||month>
(19)调用函数f(27)的输出结果是。
voidf(intn)
{if(n<
5)
printf(“%d”,n);
printf(“%d”,n%5);
f(n/5);
A)102B)201
C)21D)20
(20)下列程序段的输出结果是。
intk=3,j=4;
int*p=&
k,*q=&
j;
(*p)--;
j=k;
(*q)--;
printf(“(%d,%d)”,k,j);
A)(2,1)B)(1,2)
C)(4,3)D)(3,3)
三、程序填空题(每空2分,共20分)
程序1【程序说明】输入一批以-1结束的整数,求偶数和。
{intx,sum;
sum=0;
scanf(“%d”,&
x);
(21){
if((22))sum=sum+x;
printf(“sum=%d”,sum);
程序2【程序说明】a是一个3×
3的矩阵,输入a的元素,如果a是下三角矩阵,输出”YES”,否则输出”NO”。
(下三角矩阵,即主对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线。
)
{intflag,k;
inta[3][3];
for(i=0;
3;
for(k=0;
a[i][k]);
(24);
for(i=0;
3&
flag;
for(k=i+1;
k<
3&
k++)
if((25))(26);
if(flag)printf(“YES\n”);
elsepirntf(“NO\n”);
程序3【程序说明】输入一个字符串,将其中的大写字母转换为小写字母后输出。
{charstr[80];
intk;
gets(str);
for(k=0;
str[k]!
if((27))(28);
puts(str);
程序4【程序说明】请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。
intf1(chars[])
{intk=0;
while(s[k]!
k++;
returnk;
intf2(char*s)
{char*ss;
(29);
while(*s!
s++;
return(30)
程序阅读题(共20分)
{intj,k;
floatf,s;
s=0;
f=1;
for(k=1;
=3;
k++){
for(j=1;
j<
k;
j++)
f=f*k;
s=s+f;
printf(“%.0f#”,s);
{longfun(longnumber);
printf(“%ld\n”,fun(-974));
longfun(longnumber)
{intflag;
longres=0;
flag=number<
0?
-1:
1;
if(number<
0)number=-number;
while(number!
=0){
res=res*10+number%10;
number/=10;
printf(“%d#”,res);
returnflag*res;
{FILE*in;
char*string1=”IFYOUFAILTOPLAN”;
char*string2=”YOUPLANTOFAIL”;
if((in=fopen(“file.txt”,“w”))!
while(*string2!
fputc(*string2++,in);
if((in=fopen(“file.txt”,“r”))!
while(fgetc(in)!
=EOF)
putchar(*string1++);
程序设计题(每题15分,共30分)
1.输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出10个数。
2.输入一个正整数x和一个正整数n,求下列算式的值。
要求定义和调用2个函数:
fac(n)计算n的阶乘;
mypow(x,n)计算x的n次幂,2个函数的返回值类型都是double。
x-x2/2!
+x3/3!
-x4/4!
+…+(-1)n-1xn/n!
试卷2参考答案
考试试卷2
(1)B
(2)B(3)A(4)A(5)B
(6)A(7)B(8)B(9)A(10)A
(11)C(12)A(13)D(14)D(15)B
(16)D(17)A(18)C(19)B(20)A
1.(21)while(x!
=-1)
(22)x%2==0
(23)scanf("
%d"
&
2.(24)flag=1
(25)a[i][k]!
=0
(26)flag=0
3.(27)str[k]>
str[k]<
=’Z’
(28)str[k]=str[k]-‘A’+‘a’
4.(29)ss=s
(30)s-ss
程序11#3#21#
程序24#47#479#-479
程序3IFYOUFAILTOP
五、程序设计题(略)
试卷二
模拟测试3
模拟考试试卷三
C语言源程序文件通过了编译、连接之后,生成一个后缀为.exe的文件。
在C程序中,函数既可以嵌套定义,也可以嵌套调用。
在C程序中,APH和aph代表不同的变量。
表达式0195是一个八进制整数。
表达式3.14%2不符合C语言语法。
设变量定义为charcc[]=“12\n345”,则表达式sizeof(cc)的值是7。
执行printf(“%d”,‘M’-‘A’+’a’-‘m’);
,输出0。
x等价于x!
=1。
表达式(z=0,(x=2)||