c语言真题20套Word文档下载推荐.doc
- 文档编号:810645
- 上传时间:2023-04-29
- 格式:DOC
- 页数:56
- 大小:428KB
c语言真题20套Word文档下载推荐.doc
《c语言真题20套Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《c语言真题20套Word文档下载推荐.doc(56页珍藏版)》请在冰点文库上搜索。
j<
j++)printf("
%3d"
10*i+j);
break;
B、{for(j=1;
}
C、for(j=1;
continue;
D、{for(j=1;
staticcharstr[10]="
China"
;
数组元素个数为(D)。
A、6B、9C、5D、10
以下程序的输出结果是:
(C).
fun(intx,inty,intz){z=x*x+y*y;
}main()
{inta=31;
fun(5,2,a);
printf("
a);
A、无定值B、29C、31D、0
文件包含中,被包含文件(B).
A、可以是可执行文件.B、可以嵌套其它文件.
C、可以是目标文件或源文件.D、必须用"
.h"
为后缀.
下列程序段的输出结果是:
voidfun(int*x,int*y){printf("
%d%d"
*x,*y);
*x=3;
*y=4;
main(){intx=1,y=2;
fun(&
y,&
x);
%d%d"
x,y);
A、2112B、1234C、2143D、1212
1.在C程序中,main函数必须位于程序的最前面错误
2.表达式(j=3,j++)的值是4.错误
3.已知a=3,b=4,c=5,则逻辑表达式a||b+c&
b-c的值为0.【参考答案】错误
4.循环结构中的continue语句是使整个循环终止执行【参考答案】错误
5在实际编程中,do-while循环完全可以用for循环替换.【参考答案】正确
6引用数组元素时,数组元素下标必须是整型常量.【参考答案】错误
7如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
正确
8带参数的宏定义不是进行简单的字符串替换,还要进行参数替换.【答案】正确
9下列的初始化的方式是正确的吗?
charst[10];
st="
string"
【答案】错误
10在定义结构体变量时不允许对它赋初值.【参考答案】错误
三.填空
设i,j,k均为int型变量,则执行完下面的for循环后,k的值为__10___.
for(i=0,j=10;
=j;
i++,j--)k=i+j;
4.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_类型____,再说明结构体变量.
四.【程序设计】
功能:
将主函数中输入的字符串反序存放。
例如:
输入字符串"
abcdefg"
,则应输出"
gfedcba"
。
注意:
请在Begin和End注释行之间填写代码,所有注释语句都不能删除。
#include"
stdio.h"
#include"
string.h"
conio.h"
#defineN81
voidfun(charstr[],intn)
{/*********Begin**********/
【参考代码】
inti,j;
charc;
for(i=0,j=n-1;
j;
i++,j--)
{c=str[i];
str[i]=str[j];
str[j]=c;
/**********End**********/
voidmain()
{voidTestFunc();
chars[N];
intl;
inputastring:
"
);
gets(s);
l=strlen(s);
fun(s,l);
Thenewstringis:
puts(s);
TestFunc();
五.【程序改错】
先从键盘上输入一个3行3列矩阵的各个元素的值,然后输
出主对角线上的元素之和sum。
intfun()
{inta[3][3],sum;
inti,j;
/**********ERROR**********/
a=0;
for(i=0;
3;
i++)
for(j=0;
j++)
/**********ERROR**********/
scanf("
a[i][j]);
/**********ERROR**********/
sum=sum+a[i][j];
sum=%f\n"
sum);
{fun();
1【参考答案】sum=0;
2【参考答案】scanf("
a[i][j]);
3【参考答案】sum=sum+a[i][i];
sum+=a[i][i];
4【参考答案】printf("
sum=%d\n"
六.【程序填空】先将在字符串s中的字符按正序存放到t串中,然后把s中的
字符按逆序连接到t串的后面。
voidfun(chars[],chart[])
{inti,sl;
/***********FILL***********/
sl=_____;
for(i=0;
i<
sl;
i++)
t[i]=s[i];
for(i=0;
/***********FILL***********/
t[sl+i]=_____;
t[sl+i]=_____;
{chars[100],t[100];
\nPleaseenterstrings:
_____("
%s"
s);
fun(s,t);
Theresultis:
%s\n"
t);
1【参考答案】strlen(s)2【参考答案】s[sl-i-1]s[strlen(s)-i-1]
3【参考答案】'
\0'
04【参考答案】scanf
第二套
若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C)。
A、x+n=I;
B、x==5;
C、x=n/2.5;
D、5=x=4+1;
用scanf函数输入数据,使得x=9.6,y=81.73选择正确的输入语句(D).
A、scanf("
x=%3f"
x);
scanf("
y=%5f"
B、scanf("
x=%f"
y=%f"
y);
C、scanf("
x=%3.1f"
D、scanf("
inta=1,b=2,c=3;
c)b=a;
a=c;
c=b;
则c的值为(C)。
A、1B、3C、2D、不一定
为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与(A)配对。
A、其之前最近的未配对的ifB、其之后最近的ifC、同一行上的ifD、缩排位置相同的if
存在多层嵌套循环时,下列说法正确的是(D).
A、continue语句可以中止所有循环B、break语句可以中止所有循环
C、continue语句能够中止包含该语句的最内层循
D、break语句能够中止包含该语句的最内层循环
下面程序正确的运行结果是(B).(答案中用大写字母U代表空格)
main()
{intnum=0;
while(num<
=2)
{num++;
num);
}}
A、UU1B、UU1UU2UU3C、UU1UU2UU3UU4D、UU1UU2
inta[10];
合法的数组元素的最小下标值为(D)。
A、10B、9C、1D、0
下面叙述中错误的是(B)。
A、在其它函数中定义的变量在主函数中也不能使用B、主函数中定义的变量在整个程序中都是有效的C、复合语句中定义的变量只在该复合语句中有效D、形式参数也是局部变量
设有宏定义#defineMAX(x,y)(x)>
(y)?
(x):
(y),则F=4*MAX(2,3)的值为(B).
A、3B、2C、12D、8
设有以下定义:
intw[3][4]={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是(B).
A、*w[1]+1B、p[1][1]C、p++,*(p+1)D、w[2][2]
1.printf函数的一般格式为:
printf(格式控制,输出表列).【参考答案】正确
2在C程序中,%是只能用于整数运算的运算符【参考答案】正确
3逻辑表达式4>
2&
1||5<
3-!
0的值为1.【参考答案】正确
4continue语句对于while和do-while循环来说,意味着转去计算While表达式.
【参考答案】正确
5do-while循环由do开始,while结束,在while(表达式)后面不能加分号.
【参考答案】错误
6对任何一个二维数组的元素,都可以用数组名和两个下标唯一地加以确定.【正确
7每次调用函数时,都要对静态局部变量重新进行初始化.【参考答案】错误
8若有#defineS(a,b)a*b则语句area=S(3,2);
area的值为6。
9设有定义:
inta[10],*p;
则下列的语句是等价的.p=&
a[0];
p=a;
正确
10共用体变量在引用时不能只用共用体变量名,必须使用某个成员名.【答案】正确
三.填空,1已知a=13,b=6,a%b的十进制数值为__1___.
2当a=3,b=2,c=1;
时,执行以下程序段后b=__1___.if(a>
b)a=b;
if(b>
c)b=c;
elsec=b;
c=a;
3若输入字符串:
abcde<
回车>
则以下while循环体将执行__0___次.
while((ch=getchar())=='
e'
)printf("
*"
4求字符串长度的库函数是_strlen____,只写函数名即可.
5feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为_非0值_,否则为__0__.
四【程序设计】
对任意输入的x,用下式计算并输出y的值。
(还可以尝试用case语句)
-1x<
y=0x=0
1x>
intfun(intn)
{/*********Begin**********/
【参考代码】
intm;
if(n<
0)
m=-1;
else
if(n==0)m=0;
elsem=1;
returnm;
/**********End**********/
voidmain()
{voidTestFunc();
intx,y;
printf("
enterx:
scanf("
y=fun(x);
x=%d,y=%d\n"
x,y);
TestFunc();
六改错-功能:
将6个数按输入时顺序的逆序进行排列.
voidsort(char*p,intm)
{inti;
charchange,*p1,*p2;
m/2;
{/***********ERROR***********/
*p1=p+i;
*p2=p+(m-1-i);
change=*p1;
*p1=*p2;
*p2=change;
main()
{inti;
/***********ERROR***********/
charp,num[6];
=5;
i++)
/***********ERROR***********/
num[i]);
p=&
num[0];
/***********ERROR***********/
sort(*p,6);
i++)
【参考答案】p1=p+i;
p2=p+(m-1-i);
【参考答案】char*p,num[6];
【参考答案】scanf("
num[i]);
【参考答案】sort(p,6);
【程序填空】功能:
输入3个数a,b,c,按从小到大的顺序输出。
(冒泡法或选择法,尝试用来程序设计)
{voidswap(int*p1,int*p2);
intn1,n2,n3;
int*pointer1,*pointer2,*pointer3;
pleaseinput3number:
n1,n2,n3:
scanf("
%d,%d,%d"
n1,&
n2,&
n3);
pointer1=&
n1;
pointer2=&
n2;
pointer3=&
n3;
if(_____)swap(pointer1,pointer2);
if(_____)swap(pointer1,pointer3);
if(_____)swap(pointer2,pointer3);
thesortednumbersare:
%d,%d,%d\n"
n1,n2,n3);
/***********FILL***********/
voidswap(_____)
int*p1,*p2;
{intp;
p=*p1;
*p1=*p2;
*p2=p;
【参考答案】n1>
n2n2<
n1*pointer1>
*pointer2*pointer2<
*pointer1
n3n3<
n1*pointer1>
*pointer3*pointer3<
【参考答案】n2>
n3n3<
n2*pointer2>
*pointer2
【参考答案】p1,p2
第三套
若x,i,j,k都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:
(D).
A、52B、16C、4D、32
A、11和10B、10和11C、11和11D、10和10
(A)
main(){intm=5;
if(m++>
5)printf("
%d\n"
m);
elseprintf("
m--);
}
A、6B、5C、7D、4
执行下面程序段后,i的值是(A).
inti=10;
switch(i)
{case9:
i+=1;
case10:
i--;
case11:
i*=3;
case12:
++i;
A、28B、10C、9D、27
下面有关for循环的正确描述是(C)。
A、for循环是先执行循环体语句,后判断表达式B、在for循环中,不能用break语句跳出循环体C、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
D、for循环只能用于循环次数已经确定的情况
若chara[10];
已正确定义,以下语句中不能从键盘上给a数组的
所有元素输入值的语句是(A)。
A、for(i=0;
10;
i++)a[i]=getchar();
a);
C、gets(a);
D、a=getchar();
下面叙述中错误的是(B)。
file1.c中有命令,#include<
file2.c>
若file2.c中有全局静态变量a,则(B).
A、a在file1.c中应用extern说明.B、a在file1.c中有效,不必用extern说明.
C、a在file1.c中不生效D、a在file1.c和file2.c中均不生效.
若有定义:
intaa[8];
则以下表达式中不能代表数组元素aa[1]的地址的是(C)。
A、&
aa[1]B、&
aa[0]+1C、&
aa[0]++D、aa+1
1.在C程序中,main函数必须位于程序的最前面【参考答案】错误
2若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变
0的值为1.正确
4break语句不能终止正在进行的多层循环.【参考答案】正确
5C语言中三种基本结构:
顺序选择循环,其结构内的每个部分都会被执行到.【答案】错误
6数值型数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.
7在C语言中,函数名代表函数的入口地址.【参考答案】正确
8宏名有类型,其参数也有类型.【参考答案】错误
9数组名与指针变量是相互等价的.错误
10一个共用体变量中不能同时存放其所有成员.【参考答案】 正确
三1intx=2;
z=++x+1;
则x的值为__3___.
2当a=1,b=2,c=3时,执行以下程序段后c=__2___.if(a>
c)b=a;
a=c;
c=b;
3设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是__3___.
for(x=0,y=0;
y!
=123&
x<
x++)scanf("
4.字符串比较的库函数是_____,只写函数名即可.strcmp
5调用fopen函数打开一文本文件,在"
使用方式"
这一项中,为追加而打开需填入
a或a+
【程序设计】在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。
voidmain()
{inti,j,s,a[3][3];
intfun(inta[3][3]);
voidTestFunc();
{for(j=0;
j++)scanf("
s=fun(a);
printf("
Sum=%d\n"
TestFunc();
intfun(inta[3][3])
{/*********Begin**********/
【参考代码】
intsum=0,i;
for(i=0;
sum=sum+a[i][i]*a[i][i];
returnsum;
/**********End**********/
【程序改错】
输入10个数,要求输出这10个数的平均值
floataverage(floatarray[10])
{inti;
floataver,sum=array[0];
sum=sum+array[i];
aver=sum/10.0;
return(aver);
voidmain()
{/***********ERROR***********/
intscore[10],aver;
inti;
input10scores:
\n"
%f"
score);
aver=average(score[10]);
averagescoreis%5.2f"
aver);
【参考答案】for(i=1;
i++)for(i=1;
=9;
i++
【参考答案】floatscore[10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 20