上半年C语言练习及参考答案2415Word下载.docx
- 文档编号:16209379
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:17
- 大小:19.05KB
上半年C语言练习及参考答案2415Word下载.docx
《上半年C语言练习及参考答案2415Word下载.docx》由会员分享,可在线阅读,更多相关《上半年C语言练习及参考答案2415Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
9.已有定义:
chara[]="
xyz"
b[]={'
x'
'
y'
z'
};
则a和b数组的sizeof值分别为【4和3】
10.阅读程序:
voidf(int*x,int*y)
intt;
t=*x;
*x=*y;
*y=t;
inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&
a[7];
while(p<
q)
f(p,q);
p++;
q--;
for(i=0;
i<
8;
i++)
%d,"
a[i]);
该程序的输出结果是【8,7,6,5,4,3,2,1】。
11.阅读程序:
inta[3][3],*p,i;
p=&
a[0][0];
9;
p[i]=i;
3;
a[1][i]);
该程序输出结果是【345】
12.阅读程序:
#defineN20
fun(inta[],intn,intm)
inti,j;
for(i=m;
i>
=n;
i--)
a[i+1]=a[i];
inti,a[N]={1,2,3,4,5,6,7,8,9,10);
fun(a,2,9);
5;
a[i]);
该程序输出结果是【12334】
13.阅读程序:
prt(int*m,intn)
{
inti;
n;
m[i]+=1;
}
main()
inta[]={10,22,83,14,56,37,98},i;
prt(&
a[2],4);
7;
该程序输出为【10,22,84,15,57,38,98】
14.阅读程序:
intF1(intx){return3*x*x;
#defineF2(x)3*x*x
F1(3+5));
F2(3+5));
该程序输出为【192,29】
15.intc=35;
intz1=c&
c;
intz2=c&
&
intz3=c^c;
intz4=c|c
则z1、z2和z3的值分别为【35,1,0,35】
16.以下叙述正确的是【D】
A.预处理命令行必须位于源文件开头
B.在源文件的一行上可以有多条预处理命令
C.宏名必须大写
D.宏替换不占用运行时间
【说明:
预处理命令行可以在程序开头,中间或后面;
一行上只能
最多写一个预处理命令。
#define定义的宏可以小写或大写】
17.已知char*p;
charstr[10];
可以:
p="
China"
strcpy(str,"
);
不可以:
str="
strcpy(p,"
//str未分配空间
也可以:
charstr[10]="
charstr[10]={"
18.typedefstructstu{longa;
intb;
charc[2];
}mystu;
则说明:
structstu为结构体类型,mystu也为结构体类型。
mystu不是结构体变量。
19.chars[]="
1598"
*p;
p=s;
%c"
*p++);
则程序输出【15】
20.阅读程序:
intnum[4][4]={{1,2,3,4},{5,6,,7,8},
{9,10,11,12},{13,14,15,16}};
4;
for(j=0;
j<
=4*i;
j++)
'
'
for(j=i;
%4d"
num[i][j]);
\n"
则该程序的输出结果是【】。
答案:
输出结果为4行:
1234
678
1112
16
21.阅读程序:
point1(char*p)
p+=3;
point2(char*p)
*p+=3;
chara[4]={'
a'
b'
c'
d'
charb[4]={'
char*p1=a+2,*p2=b+2;
point1(p1);
point2(p2)
a[2]);
b[2]));
则改程序输出【cf】
22.structnode{intdata,structnode*next};
structnode*p,*q,*r;
p=(structnode*)malloc(sizeof(structnode));
q=(structnode*)malloc(sizeof(structnode));
r=(structnode*)malloc(sizeof(structnode));
p->
data=20,q->
data=15,r->
data=60;
要使得p,q,r形成一个单链表,应该使用语句:
【p->
next=q;
q->
next=r;
r->
next=NULL】
23.关于结构体:
structstudent{
intage;
charname[20];
}*p,stu1,stu2;
以下使用正确的是【ACEF】
A.p=&
stu1;
B.p=stu2;
C.stu1.age=30;
D.stu1->
age=32;
E.p->
F.(*p).age=21;
24.以下程序:
structnode{intdata,structnode*next};
next=NULL;
则上述程序构建了一个单链表,如果要将结点q从链表中删除,
应该使用语句【p->
free(q);
或者【p->
next=q->
next;
next=p->
next->
25.与函数fseek(fp,0L,SEEK_SET)有相同作用的语句是【rewind(fp)】
说明:
不是feof(fp);
ftell(fp);
fgetc(fp);
26.已有以下程序:
#include<
stdio.h>
voidtest(char*fname,char*str)
FILE*fp;
fp=fopen(fname,"
w"
fputs(str,fp);
fclose(fp);
test("
t1.txt"
"
start"
end"
则程序运行后文件t1.txt中的内容为【end】
写入方式"
为覆盖写,写了2次,只保存最后一次。
27.已有以下程序:
a+"
则程序运行后文件t1.txt中的内容为【startend】
为追加写,写了2次,第二次写在文件末尾。
28.inti=0,j=0,k=0;
scanf("
%d%*d%d"
i,&
j,&
k);
i,j,k);
运行时如果输入102030<
CR>
,则程序输出结果为【10,30,0】
29.inti=0,j=0,k=0;
%*d%*d%d"
,则程序输出结果为【30,0,0】
%*d表示跳过一个数据不读。
30.阅读程序:
#defineS(x)4*x*x+1
inti=6,j=8;
%d\n"
S(i+j));
则程序输出结果为【81】
31.阅读以下程序:
charc1,c2;
for(c1='
0'
c2='
9'
c1<
c2;
c1++,c2--)
%c%c"
c1,c2);
该程序输出【0918273645】
32.阅读以下程序:
voidswap(intx,inty)
t=x;
x=y;
y=t;
A:
%d%d\n"
x,y);
inta=23,b=74;
swap(a,b);
B:
a,b);
则该程序输出【】
输出2行:
A:
74,23
B:
23,74
33.阅读以下程序:
voidswap(int*x,int*y)
34.阅读程序:
fun(inta)
intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
inti,a=5;
%d%d"
i,fun(a));
则该程序输出【010111212】
局部变量说明为static,其生存期将延长。
35.阅读程序:
inthuiwen(char*str)
char*p1,*p2;
inti,t=0;
p1=str;
p2=p1+strlen(str)-1;
//指向最后一非'
\0'
字符
strlen(str)/2;
if(*p1++!
=*p2--)
{t=1;
break}
if(t==0)return1;
elsereturn0;
charstr1[20]={"
Hello,Mr.Lee"
charstr2[20]={"
012343210"
if(huiwen(str1))printf("
1:
Yes\n"
elseprintf("
No\n"
if(huiwen(str2))printf("
2:
则该程序运行后输出结果为【】
1:
No
2:
Yes
36.intm=0256,n=256;
%o,%o\n"
m,n);
则程序输出为【256,400】
37.intm=3,n=8;
则程序输出为【3】
38.阅读程序:
switch(i)
case0:
i);
case1:
default:
则程序输出【000122】
39.如果要判断字符串s1是否比字符串s2大,应该用【if(strcmp(s1,s2)>
0)】
40.假设:
inti,a[10],*p;
则以下合法赋值的语句是【DE】
A.p=100;
B.p=a[5];
C.p=a[2]+10;
D.p=a+2;
E.p=&
a[2];
41.floata=2,b=4,h=3;
其中梯形的上底、下底及高分别为a,b,h。
以下不能计算梯形面积的是【B】
A.(a+b)*h/2b.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)
42.已知chara[]="
abcdefg"
b[20]="
则sizeof(a)和sizeof(b)的
值分别为【8和20】,strlen(a)和strlen(b)的值分别为【7和7】。
43.下面程序要输出以下图形,请填空。
*
***
*****
*******
*********
程序:
for(i=1;
___;
i++)//
(1)
for(j=1;
j<
=5-i;
j++)printf("
"
=_____;
*"
//
(2)
(1)5;
(2)2*i-1;
44.下面程序要输出以下图形,请填空。
*
**
***
****
*****
(2)i;
45.阅读以下程序:
inti,k=0,n=0;
fp=fopen("
d1.data"
fprintf(fp,"
i);
//向文件d1.dat中写入123
r"
fscanf(fp,"
%4d%4d"
k,&
n);
//读入123到k,而n则没有数据可读,故n未读入数据
%d,%d"
k,n);
fclose(FP);
则该程序输出结果为【123,0】
46.阅读以下程序:
inti,a[4]={12317,23425,138,47};
intx,y;
d2.dat"
wb"
//打开方式二进制写;
i<
fwrite(&
a[i],sizeof(int),1,fp);
//每个整数2字节,写入4次共8字节
rb"
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&
x,sizeof(int),1,fp);
y,sizeof(int),1,fp);
x=%d,y=%d\n"
该程序输出结果为【x=138,y=147】
47.#defineN4
inta[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
voidf(inta[][N])
inti,j,t;
N;
=i;
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
inti,j;
a[i][j]);
写出该程序的输出结果【】。
完整矩阵转置存放。
输出:
15913
261014
371115
481216
48.杨辉三角形为:
1
11
121
1331
14641
15101051
...
请将程序补充完整:
#defineN6
voidYangHui(intx[N][N])
x[0][0]=1;
x[i][0]=();
//
(1)
i;
x[i][j]=();
(1)x[i][i]=1;
(2)x[i-1][j-1]+x[i-1][j]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上半年 语言 练习 参考答案 2415