c语言模拟题目第二十套docxWord格式.docx
《c语言模拟题目第二十套docxWord格式.docx》由会员分享,可在线阅读,更多相关《c语言模拟题目第二十套docxWord格式.docx(24页珍藏版)》请在冰豆网上搜索。
![c语言模拟题目第二十套docxWord格式.docx](https://file1.bdocx.com/fileroot1/2022-12/17/faf4e231-0de1-41c3-bbf7-eca98184f7d0/faf4e231-0de1-41c3-bbf7-eca98184f7d01.gif)
if(i<
l)continue;
if(i==5)break;
i++;
A、1
B、6
C、死循环,不能确定次数
D、4
【参考答案】错谋
[未答此题]
以下不能对二维数组a进行正确初始化的语句是()。
A、inta[2][3]={{1,2},{3,4},{5,6}};
B、inta[][3]二{{1,2},{0}};
C、inta[2][3]={0};
D、inta[][3]={l,2,3,4,5,6};
下面函数调用语句中,fun含有实参的个数为().fun((x,y),(x+y,z,x/y));
B、4
C、5
D、2
在〃文件包含〃的预处理中,被包含的文件应是().
A、源文件
B、可执行文件
C、目标文件
D、批处理文件
[未答此题]以下程序的输出结果是().
#include<
stdio.h>
voidmain()
{inta[]={2,4,6,8},*p=a,i;
for(i=0;
i<
4;
i++)a[i]=*p++;
printf(/,%d\n,/,a⑵);
}
A、2
13、6
C、8
B
[未答此题I
printf函数的一般格式为:
printf(格式控制,输出表列).
【学生答案】错谋
未答此题
【参考答案】
正确若a=3,b=2,c=l则关系表达式"
(a>
b)=c〃的值为〃真〃。
【学生答案】错误
正确
语句if(a>
b)printf("
%d"
a);
elseprintfb);
可以用条件表达式a>
b?
a:
b取代.
错误
若有说明intc;
则while(c=getchar());
没有语法错误。
C语言屮三种基本结构:
顺序、选择、循环,其结构内的每个部分都会被执行到..
【学生答案】错误
数值型数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.
【学生答案】错课
没有初始化的数值型静态局部变量的初值是不确定的值.
一个include命令可以指定多个被包含的文件。
定义inta[]={1,2,3,4},y,*p=&
a[l]则执行y=(*~p)++后,y的值是2・
共用体变量使用过程中,可在同一内存段中存放几种不同类型的成员.
若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+二n++后x的值为,n的值
为・
【空11错误
[无]
10
【空2]错误
当a=3,b=2,c=l;
时,执行以下程序段后b=.if(a>
if(b>
c)b=c;
elsec=b;
c=a;
【空1]错误
设i,j,k均为int型变暈,则执行完下而的for循环后,k的值为for(i=0,j=10;
=j;
i++,j—)k=i+j;
【空1]错谋
C语言屮,二维数组在内存中的存放方式为按优先存放.
行
设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是ounionstud
{shortintnuiti;
charname[8];
floatscore[3];
doubleave;
}d,stu[3];
12
/*
【程序设计】功能:
求n阶方阵主、副对角线上的元素之积。
注意:
请在Begin和End注释行Z间填写代码,
所有注释语句都不能删除。
*/
#defineN4
#inelude"
stdlib.h"
#inelude"
stdio.h"
floatmul(intarr[][N])
/*********Bogin**********/
/**********End**********/
inta[N][N],i,j;
voidTestFunc();
N;
i++)for(j=0;
j++)
a[i][j]=rand()%10;
for(i=0;
i++){
for(j=0;
printf(z/%4dz/,a[i][j]);
printf(z/\n,z);
printf("
Thesumis%f\nz,,mul(a));
TestFunc();
voidTestFunc()
FILE*IN,*0UT;
intm,n;
inti[4][4];
floato;
IN=fopen("
in.dat"
"
r"
);
if(IN==NULL)
printf("
ReadFileError"
OUT二fopen("
out.datzz,"
w"
if(OUT==NULL)
WriteFi1eError"
for(m=0;
in<
100;
m++)
for(n=0;
n<
n++)
fscanf(IN,"
%d:
&
i[m][n]);
o=mul(i);
fprintf(OUT,"
%f\n"
o);
fclose(TN);
fclose(OUT);
【参考代码】
inti,j;
floatt=l;
for(i=0;
if(i==j||i+j二二NT)
t=t*arr[i][j];
return(t);
【考生代码】
【程序改错】
功能:
为一维数组输入10个整数;
将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*/#include"
stdio.h"
voidmain()
inta[10];
voidinput();
voidoutput();
voidmax_min();
input(a,10);
max_min(a,10);
output(a,10);
voidinput(intarrintn)
inti;
pleaseenter10integers:
\n"
n;
i++)
scanf("
%cT:
arr[i]);
voidmax_min(intarr[],intn)
intmax,min,t,i;
min=max=0;
for(i=l;
if(arr[i]<
arr[max])
max=i;
elseif(arr[i]<
arr[min])min=i;
t=arr[0];
arr[0]=arr[min];
arr[min]二t;
/**********error**********/
if(max=0)max二min;
t=arr[n-l];
arr[n-l]=arr[max];
arr[max]=t;
voidoutput(intarr[],intn)
printfC'
Thechangedarrayis:
\n〃);
while(i=0;
i++)printfCz%3d,z,arr[i]);
printf(〃\n〃);
【改错1】正确
scanfarr[i]);
scanf("
%cT,arr[i]);
【改错2】错误
if(arr[i]>
arr[max])if(arr[max]<
arr[i])
【改错3】错谋
if(max==0)
if(0==max)
【改错4】错误
for(i二0;
n>
i;
=n-l;
n-l>
=i;
【程序填空】
以下程序的功能如(图1)。
计算s=K址1.0)+艮5.0))的值°
其中:
20+3x+4x<
=2
・20+3x・4x>
2
当程序正确时,函数值应为2488.000000o
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
*/^include"
doublef()
/***********FILL***********/
y=2.0*x*x+3.0*x+4・0;
y二一2.0*x*x+3.0*x-4.0;
else
【空1】错谋
double
f()
voidmain()
printf(,z%f\nz,,f(f(T.0)+f(5.0)));
floatx
doublex
【空2】错课
doubley
floaty
【空3】错误
if()
x<
2>
二x
【空4】错误
returnyreturn(y)
若己定义x和y为double类型,则表达式x二1,y二x+3/2的值是()。
A、2.0
B、2.5
执行下面程序中的输出语句后,输出的值是:
(),
main(){inta二5;
printf("
%d\rT,(a=3*5,a*4,a+5));
A、20
B、65
C、10
D、15
以下不正确的if语句形式是()。
A、if(x<
y){x++;
y++;
B、if(x!
=y)scanf("
%cT,&
x)elsescanf&
y);
C、if(x>
y&
x!
二y);
D、if(x—y)x+二y;
执行下面程序段后,s的值是()。
ints=5;
switch(十+s)
{case6:
case7:
s+=2;
case8:
case9:
s+二2;
A、8
B、7
D、6
下面程序段运行的结果是().
x=-l;
do{
x二x*x;
}while(!
x);
A、循环执行一次
B、有语法错误
C、死循环
D、循环执行两次
程序main()(chars[10];
s二"
abed"
;
%s\n"
s);
}的运行结果(以下U代表空格)是().
A、输illabed
B、输出abcdUUUUU
C、编译不通过
D、输出a
函数的形式参数系统默认存储类型说明是()O
A、static
extern
C、register
D、auto
【学生答案】[未答此题I
若filel中包含file2,file2中要用到file3,若filo2中不用^include"
file3・h〃,则在filel.c中应进
行如下定义().
^include
C^#include
D、#include
〃file2.h〃和^include〃file3.h〃
"
file2.h,file3.h/z
〃f订e2・h〃,〃file3.h〃
file3.h"
和#include〃f订e2.h"
错误
若有说明:
intn=2,*p=&
n,*q=p;
则以下非法的赋值语句是()。
*p二*q;
n=*q;
C>
p二n;
D、p二q;
c
for循环的三个表达式中间用逗号相分隔.
在C程序屮,逗号运算符的优先级最低
正确设i=l,j=2,k二3,则逻辑表达式!
(i>
j)||!
k&
l的值为0.
「or循环的三个表达式都可以省略.
do-whi1e循环的whilejn的分号不可以省略•
若定义intarray[5],*p;
则赋值语句p二array;
是正确的.
函数调用语句:
func(recl,rec2+rec3,(rec4,rec5));
中,含有的实参个数是5.
【学生答案】错课
用一个#include命令可以同时指定数个被包含文件.
下列的语句是正确的:
int**p;
两个类型相同的结构体变量,可以互相赋值.
已知:
inti二&
j二10,m,n;
m二++i;
n=j++;
问语句执行后m二,n二
当a=l,b=2,c=3时,执行以下程序段后b二.if(a>
c)b=a;
a=c;
c=b;
以下程序的输出结果为,
#include"
{inta;
for(a=0;
a<
10;
a++);
printfa);
}【空1]错课
复制字符串的库函数是,只写函数名即可.
strcpy
将file_point定义为文件指针的语句为,写出应包含的头文件语句
FILE*file_point;
FILE*file_point
【空2]错课
^include<
stdio.h>
^include"
【程序设计】
从键盘输入一个大于3的整数,调用函数firn判断其是否素数,然后在main函数中输出相应的结论信息。
例如:
7是素数,8不是素数。
请编写fun函数。
素数是仅能被1和自身整除的数。
请在Bogin和End注释行之间填写代码,所有注释语句都不能删除。
如果是素数返回1,否则返回0
stdio.h〃
math,h"
intfun(intn)
/*********Bcgin**********/
voidTestFunc();
intm,flag;
inputaninteger/'
m);
flag=fun(m);
if(flag)
printf(z,%disaprime.\rT,ni);
printf(z/%disnotaprime.\n"
m);
TestFunc();
FILE*IN,*OUT;
int订N,iOUT,i;
IN二fopen("
5.in"
PleaseVerifyTheCurrerntDir..ItMayBeChanged"
OUT二fopen("
5.out"
if(OUT二二NULL)
PleaseVerifyTheCurrentDir..ItMayBeChanged"
fscanf(IN,〃%d〃,&
ilN);
iOUT二fun(ilN);
fprintf(OUT,〃%d\n〃,1OUT);
fclose(IN);
intj;
j=1;
for(1=2;
{if(n%i==0)j=0;
returnj;
或
inti,k,flag;
k=sqrt(n);
for(i=2;
=k;
if(n%i=0)breeik;
辻(i>
k)flag=l;
elseflag=0;
找出大于m的最小素数,并将其作为函数值返回。
intfun(intm)
inti,k;
for(i=m+l;
;
for(k=l;
k<
k++)
if(i%k!
=0)break;
returnk;
intn;
&
n);
printfCz%d\n/z,fun(n));
【改错1】错课
for(k=2;
k++)for(k=2;
i>
k;
for(k=2;
=i-l;
i/2;
i/2>
=sqrt(i);
sqrt(i)>
【改错2】错谋
【学生答案】if(i%k!
【参考答案】if(i%k==0)break;
if(!
(i%k))break:
【改错3】错误
【学生答案】if(k<
i)
=k)if(k>
=i)if(k=i)if(k>
=i/2)if(k=i/2)if(k>
sqrt(i))
【改错4】错谋
【学生答案】returnk;
returni;
return(i);
将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。
voidstrcopy(char*strl,char*str2,intm)
char*pl,*p2;
p2=str2;
while(*pl)
main()
inti,m;
charstr1[80],str2[80];
gets(strl);
%d〃,&
puts(strl);
puts(str2);
【空1】错误
pl二strl+m
【空2】错谋
【学牛答案】
*p2++=*pl++
*(p2++)=*(pl++)*p2=*pl,p2++,pl++
*p2二*pl++,p2++