C语言习题级答案3.docx
- 文档编号:2866657
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:26
- 大小:21.25KB
C语言习题级答案3.docx
《C语言习题级答案3.docx》由会员分享,可在线阅读,更多相关《C语言习题级答案3.docx(26页珍藏版)》请在冰点文库上搜索。
C语言习题级答案3
测试题3
1.C语言中不合法的字符常量是C
A、'\65'
B、'\xff'
C、'\028'
D、'&'
2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。
A、p=&a[0];
B、p=a;
C、p=&a;
D、*p=a[0];
3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B)
z=x>y?
x:
y
A、72
B、26
C、48
D、22
4.对于建立函数的目的,正确的说法是D
A、提高程序的执行效率
B、减少程序的篇幅
C、减少程序文件所占的内存
D、提高程序的可读性
5.有定义:
char*p1,*p2;则下列表达式中正确合理的是C
A、p1/=5
B、p1+=5
C、p1=&p2
D、p1*=p2
6.以下程序的运行结果是(B)。
main()
{
inti=1,sum=0;
while(i<10)sum=sum+1;i++;
printf(i=%d,sum=%d,i,sum);
}
A、i=10,sum=9
B、运行出现错误
C、i=2,sum=1
7.若变量已正确定义且k的值是4,计算表达式(j=4,k--)后,j和k的值为(C)
A、j=4,k=4
B、j=3,k=3
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
main()
{
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
C、6
D、23
)。
D下面判断正确的是(11.
A、char*a=china;等价于char*a;*a=china;
B、charstr[10]={china};等价于charstr[10];str[]={china};
C、charc[4]=abc,d[4]=abc;等价于charc[4]=d[4]=abc;
D、char*s=china;等价于char*s;s=china;
12.设b的值为二进制数,b=00000010;表达式(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(%s%s,a,b);
C、gets(a),gets();
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.
0、可在程序的编译或运行阶段得到初值B0、可在程序的运行阶段得到初值C0
、可在程序的编译阶段得到初值D
)。
19.下面四个选项中,均是不合法的用户标识符的选项是(D_123tempint、AAP_0do、Bfloatla0_A、Cb-agotoint
D、
a进行正确初始化的语句是(B)。
20.以下不能对二维数组};
A、6}};、BC、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
C、6
D、-3
22.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述
中错误的是(B)。
A、有穷性
B、有零个或多个输出
C、可行性
D、有零个或多个输入
23.下列语句中,不正确的是(C)。
A、staticchara[2]={'1'};
B、staticchara[2]={1,2};
C、staticchara[2]={'1','2','3'};
D、staticinta[2]={'1','2'};
24.若有下列定义,则对a数组元素地址的正确引用是(D)。
inta[5],*p=a;
A、*(p+5)
B、*&a[5]
C、*p+2
D、*(a+2)
char*p1,*p2,*p3,*p4,ch;
若有定义:
25.
则不能正确赋值的程序语句为(D)。
A、p4=&ch;*p4=getchar();
B、p2=(char*)malloc
(1);scanf(%c,p2);
C、p1=&ch;scanf(%c,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
判断
T作为主函数名main1.C语言规定,必须用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(
ile,
+);打开的文件晜汩履可以进行修改。
T
6.循环结构中的continue语句是使整个循环终止执行F
7.在C语言中,对于数组的定义档牡愠?
?
捜浯異整屲是错误的.T
8.C语言本身不提供输入输出语句,输入和输出操作是由函数来T
实现的。
T共同体变量所占的内存长度等于最长的成员的长度。
9.T语句。
printf都不是C10.#define和
程序设计1./*------------------------------------------------
【程序设计】--------------------------------------------------
求最大值出现的位置(如果最大值出功能:
给定n个数据。
现多次,求出第一次出现的位置即可)
------------------------------------------------*/
#include
intstation(ints[],intn)
{
/**********Begin**********/
/**********End**********/
}
main()
{
inta[100],n,i,t;
scanf(%d,&n);
for(i=0;i scanf(%d,&a[i]); t=station(a,n); printf(hemax_valuepositionis: %d\n,t); TestFunc(); } TestFunc() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen(in.dat, ); if(IN==NULL) { printf(ReadFileError); } OUT=fopen(out.dat,w); if(OUT==NULL) { printf(WriteFileError); } for(n=0;n<10;n++) { fscanf(IN,%d,&i[n]); } o=station(i,10); fprintf(OUT,%d\n,o); fclose(IN); fclose(OUT); } 答案 inti,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k])k=i; return(k+1); 2./*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求n阶方阵主、副对角线上的元素之积。 ------------------------------------------------*/ #defineN4 #includestdlib.h #include ky();bvoid floatmul(intarr[][N]) { egin**********/B/********** /**********End**********/ } main() { inta[N][N],i,j; for(i=0;i for(j=0;j a[i][j]=random(10); for(i=0;i { for(j=0;j printf(M,a[i][j]); printf(\ ); } printf(Thesumis%d\n,mul(a)); ky();b} ky()bvoid { FILE*IN,*OUT; intm,n; inti[4][4]; floato; IN=fopen(in.dat, ); if(IN==NULL) { printf(ReadFILEError); } OUT=fopen(out.dat,w); if(OUT==NULL) { printf(WriteFILEError); } for(m=0;m<100;m++) for(n=0;n<100;n++) { fscanf(IN,%d,&i[m][n]); } o=mul(i); fprintf(OUT,%f\n,o); fclose(IN); fclose(OUT); } 答案【参考代码】 inti,j; floatt=1; for(i=0;i for(j=0;j if(i==j||i+j==N-1) t=t*arr[i][j]; return(t); 改错 1【程序改错】 -------------------------------------------------------- 功能: 编制统计营业员一天的营业额的程序,设程序采用一个循环 实现,每次循环输入一笔交易金额并累计营业额。 由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 有以下统计营业员一天营业额的算法: 统计营业员一天营业额 { 营业额清0; 输入第一笔交易额; while(交易额>0.0) { 累计营业额; 输入下一笔交易额; } 输出营业额; } 记一笔交易额为变量sale,营业额为sigma。 ------------------------------------------------------*/ #include voidmain() { /**********ERROR**********/ floatsale,sigma sigma=0.0; printf(Entersaledata.\n); /**********ERROR**********/ scanf(%f,sale); while(sale>0.0) { /**********ERROR**********/ sigma+==sale; printf(Enternextsaledata(<=0tofinish).\n); scanf(%f,&sale); } printf(Sigmaofsaleis%.2f\n,sigma); } 答案【改错1】错误 【学生答案】floatsale,sigma 【参考答案】floatsale,sigma; ============================================================ 【改错2】错误 【学生答案】. scanf(%f,sale); 【参考答案】 scanf(%f,&sale); ============================================================ 【改错3】错误 【学生答案】 sigma+==sale; 【参考答案】 sigma+=sale; sigma=sigma+sale; 2.【程序改错】 -------------------------------------------------------- 功能: m个人的成绩存放在score数组中,请编写函数fun, 它的功能是: 将高于和等于平均分的人数作为函数值返回, 将高于和等于平均分的分数放在above所指的数组中。 程序中共有4条错误语句,请改正错误。 -------------------------------------------------------- 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include intfun(floatscore[],intm,floatabove[]) { /**********ERROR**********/ floatav=1; inti,n=0; for(i=0;i av+=score[i]; /**********ERROR**********/ av\=m; for(i=0;i if(av<=score[i])above[n++]=score[i]; /**********ERROR**********/ returnabove; } main() {inti,n; floatscore[9]={10,20,30,40,50,60,70,80,90},above[9]; /**********ERROR**********/ n=intfun(score,9,above); printf(\ Abovetheaveragescoreare: ); for(i=0;i } 答案【改错1】错误 【学生答案】floatav=1; 【参考答案】floatav=0; ============================================================ 【改错2】错误 【学生答案】 av\=m; 【参考答案】 av=av/m; av/=m; ============================================================ 【改错3】错误 【学生答案】 returnabove; 【参考答案】 returnn; return(n); ============================================================ 【改错4】错误 【学生答案】 n=intfun(score,9,above); 【参考答案】 n=fun(score,9,above); 填空 1.【程序填空】 --------------------------------------------------------- 功能: 是将两个字符串连接为一个字符串,不许使用库函数strcat。 -------------------------------------------------------*/ #include #includestring.h JOIN(s1,s2) chars1[80],s2[40]; { inti,j; /**********FILL**********/ _____ /**********FILL**********/ for(i=0;_____'\0';i++) s1[i+j]=s2[i]; /**********FILL**********/ s1[i+j]=_____; } main() { charstr1[80],str2[40]; gets(str1);gets(str2); puts(str1);puts(str2); /**********FILL**********/ _____ puts(str1); } 答案【空1】错误 【学生答案】_____ 【参考答案】j=strlen(s1) for(j=0;s1[j]! ='10';j++); for(j=0;s1[j];j++); ============================================================ 【空2】错误 【学生答案】 for(i=0;_____'\0';i++) 【参考答案】 s2[i]! = *(s2+i)! = *(i+s2)! = 【空3】错误 【学生答案】 s1[i+j]=_____; 【参考答案】 '\0' NULL 0 【空4】错误 【学生答案】 _____ 【参考答案】 JOIN(str1,str2) 2.【程序填空】 --------------------------------------------------------- 题目: <<<题干内容>>> 给定程序的功能是调用fun函数建立班级通讯录。 通讯录中记录每位学生的编号、姓名和电话号码。 班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! ------------------------------------------------------*/ #include #include #defineN5 typedefstruct {intnum; charname[10]; chartel[10]; }STYPE; /**********FILL**********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案