C语言习题级答案3Word格式.docx
- 文档编号:20614597
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:20
- 大小:36.15KB
C语言习题级答案3Word格式.docx
《C语言习题级答案3Word格式.docx》由会员分享,可在线阅读,更多相关《C语言习题级答案3Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
C、j=4,k=3
D、j=3,k=4
8.给出以下定义:
charx[]="
abcdefg"
;
chary[]={'
a'
'
b'
c'
d'
e'
f'
g'
};
则正确的叙述为(A)
A、数组x的长度大于数组y的长度
B、数组x和数组y等价
C、数组x和数组y的长度相同
D、数组x的长度小于数组y的长度
9.在下述程序中,判断i>
j共执行了多少次C
#include<
stdio.h>
inti=0,j=10,k=2,s=0;
for(;
;
)
{
i+=k;
if(i>
j)
printf(“%d\n”,s);
break;
}
s+=i;
A、4
B、8
C、6
D、7
10.下列各m的值中,能使m%3==2&
&
m%5==3&
m%7==2为真的是(D)。
A、8
B、17
D、23
11.下面判断正确的是(D)。
A、char*a="
china"
等价于char*a;
*a="
B、charstr[10]={"
等价于charstr[10];
str[]={"
C、charc[4]="
abc"
d[4]="
等价于charc[4]=d[4]="
D、char*s="
等价于char*s;
s="
12.设b的值为二进制数,b=;
表达式(b>
>
2)/(b>
1)的值是(A)。
A、0
B、2
C、8
D、4
13.以下叙述正确的是(A)。
A、用do-while语句构成的循环,在while后的表达式为零时结束循环
B、do-while语句构成的循环只能用break语句退出.
C、do-while语句构成的循环不能用其它语句构成的循环来代替.
D、用do-while语句构成的循环,在while后的表达式为非零时结束循环.
14.以下正确的说法是(D)。
A、如果形参与实参类型不一致,以实参类型为准
B、return后边的值不能为表达式
C、定义函数时,形参的类型说明可以放在函数体内
D、如果函数值的类型与返回值类型不一致,以函数值类型为准
15.已定义两个字符数组a,b,则以下正确的输入格式B
是
A、scanf("
%s%s"
&
a,&
b);
B、scanf("
a,b);
C、gets("
a"
),gets("
b"
);
D、get(a,b);
16.宏定义#definePI3.14中的宏名PI代替C
A、不确定类型的数
B、一个单精度实数
C、一个字符串
D、一个双精度实数
17.以下叙述中正确的是(A)。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、分号是C语句之间的分隔符,不是语句的一部分
C、花括号“{“和”}”只能作为函数体的定界符
D、构成C程序的基本单位是函数,所有函数名都可以由用户命名
18.若有说明:
inta[3][4];
则数组a中各元素(A)。
A、不能得到确定的初值
B、可在程序的编译或运行阶段得到初值0
C、可在程序的运行阶段得到初值0
D、可在程序的编译阶段得到初值0
19.下面四个选项中,均是不合法的用户标识符的选项是(D)。
A、_123tempint
B、AP_0do
C、floatla0_A
D、b-agotoint
20.以下不能对二维数组a进行正确初始化的语句是(B)。
A、inta[][3]={{1,2},{0}};
B、inta[2][3]={{1,2},{3,4},{5,6}};
C、inta[2][3]={0};
D、inta[][3]={1,2,3,4,5,6};
21.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的
值是(B)。
A、9
B、-12
D、-3
22.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述
中错误的是(B)。
A、有穷性
B、有零个或多个输出
C、可行性
D、有零个或多个输入
23.下列语句中,不正确的是(C)。
A、staticchara[2]={'
1'
B、staticchara[2]={1,2};
C、staticchara[2]={'
2'
3'
D、staticinta[2]={'
24.若有下列定义,则对a数组元素地址的正确引用是(D)。
inta[5],*p=a;
A、*(p+5)
B、*&
a[5]
C、*p+2
D、*(a+2)
25.若有定义:
char*p1,*p2,*p3,*p4,ch;
则不能正确赋值的程序语句为(D)。
A、p4=&
ch;
*p4=getchar();
B、p2=(char*)malloc
(1);
scanf("
%c"
p2);
scanf("
p1);
D、*p3=getchar();
26.以下选项中合法的实型常数是(A)。
A、.2E0
B、E-3
C、5E2.0
D、1.3E
27.若要说明一个类型名STP,使得定义语句STPs等价于char*s,
以下选项中正确的是(A)。
A、typedefchar*STP;
B、typedef*charSTP;
C、typedefstp*char;
D、typedefSTPchar*s;
28.sizeof(float)是(B)。
A、一种函数调用
B、一个整型表达式
C、一个不合法的表达式
D、一个双精度型表达式
29.下面程序的输出结果是
main(C)
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("
%d\n"
*(p+2));
A、2
B、4
C、3
D、1
30.以下四个程序中,不能对两个整型值进行交换的是D
A、
B、
C、
D、
判断
1.C语言规定,必须用main作为主函数名T
2.如果想使一个数组中全部元素的值为0,可以写成F
inta[10]={0*10};
3.若i=3,则printf("
%d"
-i++);
输出的值为-4F
4.在C语言中,此定义和语句是合法的:
T
enumaa{a=5,b,c}bb;
bb=(enumaa)5;
5.用fopen("
file"
"
r+"
打开的文件"
可以进行修改。
6.循环结构中的continue语句是使整个循环终止执行F
7.在C语言中,对于数组的定义chara[8]="
computer"
是错误的.T
8.C语言本身不提供输入输出语句,输入和输出操作是由函数来T
实现的。
9.共同体变量所占的内存长度等于最长的成员的长度。
10.#define和printf都不是C语句。
程序设计
1./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
给定n个数据,求最大值出现的位置(如果最大值出
现多次,求出第一次出现的位置即可)。
------------------------------------------------*/
#include<
intstation(ints[],intn)
/**********Begin**********/
/**********End**********/
inta[100],n,i,t;
&
n);
for(i=0;
i<
n;
i++)
a[i]);
t=station(a,n);
themax_valuepositionis:
%d\n"
t);
TestFunc();
TestFunc()
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("
in.dat"
r"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
10;
n++)
{
fscanf(IN,"
i[n]);
o=station(i,10);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
答案
inti,k;
k=0;
for(i=1;
=n;
if(s[i]>
s[k])k=i;
return(k+1);
2./*------------------------------------------------
求n阶方阵主、副对角线上的元素之积。
#defineN4
#include"
stdlib.h"
voidbky();
floatmul(intarr[][N])
inta[N][N],i,j;
N;
for(j=0;
j<
j++)
a[i][j]=random(10);
%4d"
a[i][j]);
\n"
Thesumis%d\n"
mul(a));
bky();
voidbky()
intm,n;
inti[4][4];
floato;
ReadFILEError"
WriteFILEError"
for(m=0;
m<
100;
m++)
i[m][n]);
o=mul(i);
%f\n"
答案【参考代码】
inti,j;
floatt=1;
if(i==j||i+j==N-1)
t=t*arr[i][j];
return(t);
改错
1【程序改错】
--------------------------------------------------------
编制统计营业员一天的营业额的程序,设程序采用一个循环
实现,每次循环输入一笔交易金额并累计营业额。
由于营
业员一天完成的交易次数是不确定的,为此以最后附加输
入一笔0或负数交易额作为交易金额已全部输入结束的标志。
有以下统计营业员一天营业额的算法:
统计营业员一天营业额
营业额清0;
输入第一笔交易额;
while(交易额>
0.0)
累计营业额;
输入下一笔交易额;
输出营业额;
记一笔交易额为变量sale,营业额为sigma。
------------------------------------------------------*/
voidmain()
/**********ERROR**********/
floatsale,sigma
sigma=0.0;
Entersaledata.\n"
%f"
sale);
while(sale>
sigma+==sale;
Enternextsaledata(<
=0tofinish).\n"
sale);
Sigmaofsaleis%.2f\n"
sigma);
答案【改错1】错误
【学生答案】
floatsale,sigma
【参考答案】
floatsale,sigma;
============================================================
【改错2】错误
【改错3】错误
sigma+==sale;
sigma+=sale;
sigma=sigma+sale;
2.【程序改错】
m个人的成绩存放在score数组中,请编写函数fun,
它的功能是:
将高于和等于平均分的人数作为函数值返回,
将高于和等于平均分的分数放在above所指的数组中。
程序中共有4条错误语句,请改正错误。
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
intfun(floatscore[],intm,floatabove[])
{
/**********ERROR**********/
floatav=1;
inti,n=0;
m;
i++)
av+=score[i];
av\=m;
if(av<
=score[i])above[n++]=score[i];
returnabove;
}
main()
{inti,n;
floatscore[9]={10,20,30,40,50,60,70,80,90},above[9];
n=intfun(score,9,above);
printf("
\nAbovetheaveragescoreare:
"
);
for(i=0;
i<
n;
i++)printf("
%f"
above[i]);
floatav=1;
floatav=0;
av\=m;
av=av/m;
av/=m;
returnabove;
returnn;
return(n);
【改错4】错误
n=intfun(score,9,above);
n=fun(score,9,above);
填空
1.【程序填空】
---------------------------------------------------------
是将两个字符串连接为一个字符串,不许使用库函数strcat。
-------------------------------------------------------*/
string.h"
JOIN(s1,s2)
chars1[80],s2[40];
inti,j;
/**********FILL**********/
_____
for(i=0;
_____'
\0'
s1[i+j]=s2[i];
s1[i+j]=_____;
main()
charstr1[80],str2[40];
gets(str1);
gets(str2);
puts(str1);
puts(str2);
答案【空1】错误
_____
j=strlen(s1)
for(j=0;
s1[j]!
='
10'
j++);
s1[j];
【空2】错误
for(i=0;
s2[i]!
=
*(s2+i)!
*(i+s2)!
【空3】错误
s1[i+j]=_____;
'
NULL
【空4】错误
JOIN(str1,str2)
2.【程序填空】
题目:
<
题干内容>
给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号、姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
stdlib.h>
#defineN5
typedefstruct
{intnum;
charname[10];
chartel[10];
}STYPE;
/**********FILL**********/
intfun(_____*std)
FILE*fp;
inti;
if((fp=fopen("
myfile5.dat"
_____))==NULL)
return(0);
\nOutputdatatofile!
i<
i++)
fwrite(&
std[i],sizeof(STYPE),1,fp);
_____;
return
(1);
{STYPEs[10]={{1,"
aaaaa"
"
},{2,"
bbbbb"
},{3,"
ccccc"
},
{4,"
ddddd"
},{5,"
eeeee"
}};
intk;
k=fun(s);
if(k==1)
Succeed!
else
Fail!
【空1】错误
STYPE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案