大学计算机基础及c语言程序设计补学分复习资料Word文件下载.docx
- 文档编号:16493082
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:86
- 大小:93.60KB
大学计算机基础及c语言程序设计补学分复习资料Word文件下载.docx
《大学计算机基础及c语言程序设计补学分复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《大学计算机基础及c语言程序设计补学分复习资料Word文件下载.docx(86页珍藏版)》请在冰豆网上搜索。
A)doublea;
b;
B)doublea=b=7;
C)doublea=7,b=7;
D)double,a,b;
(15)以下不能正确表示代数式
的C语言表达式是______。
A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d
(16)C源程序中不能表示的数制是
A)二进制B)八进制C)十进制D)十六进制
(17)若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是
A)w==1B)w==0C)w!
=1D)w!
=0
(18)执行以下程序段后,w的值为
intw=′A′,x=14,y=15;
w=((x||y)&
&
(w<
′a′));
A)-1B)NULLC)1D)0
(19)若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&
a,&
b,&
c);
给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是(u代表一个空格符)
A)uuu1,2,3<
回车>
B)1u2u3<
C)1,uuu2,uuu3<
D)1,2,3<
(20)有以下程序段
inta,b,c;
a=10;
b=50;
c=30;
if(a>
b)a=b,b=c;
c=a;
printf(″a=%db=%dc=%d\n″,a,b,c);
程序的输出结果是
A)a=10b=50c=10B)a=10b=50c=30
C)a=10b=30c=10D)a=50b=30c=50
(21)若有定义语句:
intm[]={5,4,3,2,1},i=4;
则下面对m数组元素的引用中错误的是
A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]]
(22)下面的函数调用语句中func函数的实参个数是
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A)3B)4C)5D)8
(23)若有定义语句:
doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;
则错误引用x数组元素的是
A)*pB)x[5]C)*(p+1)D)*x
(24)若有定义语句:
chars[10]=″1234567\0\0″;
则strlen(s)的值是
A)7B)8C)9D)10
(25)以下叙述中错误的是
A)用户定义的函数中可以没有return语句
B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C)用户定义的函数中若没有return语句,则应当定义函数为void类型
D)函数的return语句中可以没有表达式
(26)以下关于宏的叙述中正确的是
A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前
C)宏替换没有数据类型限制D)宏调用比函数调用耗费时间
(27)有以下程序
#include<
stdio.h>
main()
{inti,j;
for(i=3;
i>
=1;
i--)
{for(j=1;
j<
=2;
j++)printf("
%d"
i+j);
printf("
\n"
);
}
程序的运行结果是
A)234B)432C)23D)45
3455433434
4523
(28)有以下程序
{intx=1,y=2,z=3;
if(x>
y)
if(y<
z)printf("
++z);
elseprintf("
++y);
%d\n"
x++);
A)331B)41C)2D)1
(29)有以下程序
main()
{inti=5;
do
{if(i%3==1)
if(i%5==2){printf(“*%d”,i);
break;
}
i++;
}while(i!
=0);
printf(“\n”);
A)*7B)*3*5C)*5D)*2*6
(30)有以下程序
intfun(inta,intb)
{if(b==0)returna;
elsereturn(fun(--a,--b));
{printf("
fun(4,2));
A)1B)2C)3D)4
(31)有以下程序
stdlib.h>
intfun(intn)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;
return*p;
{inta;
a=fun(10);
a+fun(10));
A)0B)10C)20D)出错
(32)有以下程序
voidfun(inta,intb)
{intt;
t=a;
a=b;
b=t;
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;
i<
10;
i+=2)fun(c[i],c[i+1]);
i++)printf("
%d,"
c[i]);
printf("
\n"
);
A)1,2,3,4,5,6,7,8,9,0B)2,1,4,3,6,5,8,7,0,9
C)0,9,8,7,6,5,4,3,2,1D)0,1,2,3,4,5,6,7,8,9
(33)有以下程序
structst
{intx,y;
}data[2]={1,10,2,20};
{structst*p=data;
p->
y);
(++p)->
x);
A)10,1B)20,1C)10,2D)20,2
(34)有以下程序
voidfun(inta[],intn)
{inti,t;
n/2;
i++){t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;
8;
k[i]);
A)345678B)876543C)1098765D)321678
(35)有以下程序
#defineN4
voidfun(inta[][N],intb[])
{inti;
N;
i++)b[i]=a[i][i];
{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;
y[i]);
A)1,2,3,4,B)1,0,7,0,C)1,4,5,9,D)3,4,8,10,
(36)有以下程序
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[0][k];
for(i=1;
n;
i++)if(s[i][k]>
m)m=s[i][k];
returnm;
{inta[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};
fun(a,4,0));
A)4B)34C)31D)32
(37)有以下程序
{structSTU{charname[9];
charsex;
doublescore[2];
};
structSTUa={"
Zhao"
'
m'
85.0,90.0},b={"
Qian"
f'
95.0,92.0};
b=a;
%s,%c,%2.0f,%2.0f\n"
b.name,b.sex,b.score[0],b.score[1]);
A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,90
(38)假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
datanext
head
a
b
c
pq
则以下选项中可将q所指向结点从链表中删除并释放该结点的语句组是
A)(*p).next=(*q).next;
free(p);
B)p=q->
next;
free(q);
C)p=q;
D)p->
next=q->
(39)有以下程序
{chara=4;
printf(″%d\n″,a=a<
<
1);
A)40B)16C)8D)4
(40)有以下程序
{FILE*pf;
char*s1="
China"
*s2="
Beijing"
;
pf=fopen("
abc.dat"
"
wb+"
fwrite(s2,7,1,pf);
rewind(pf);
/*文件位置指针回到文件开头*/
fwrite(s1,5,1,pf);
fclose(pf);
以上程序执行后abc.dat文件的内容是
A)ChinaB)ChinangC)ChinaBeijingD)BeijingChina
题号
4
6
7
8
9
10
答案
D
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2.填空题
(1)请编写函数fun,该函数的功能是:
将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,若二维数组中的数据为
WWWW
SSSS
HHHH
则字符串中的内容应是:
WSHWSHWSHWSH。
注意:
部分源程序在文件PROG1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<
#defineM3
voidfun(char(*s)[N],char*b)
{inti,j,k=0;
i++)/*按列的顺序依次放到一个字符串中*/
for(j=0;
M;
j++)
b[k++]=s[j][i];
b[k]='
\0'
for(j=0;
i++)
b[k++]=s[i][j];
b[k]='
voidmain()
{FILE*wf;
chara[100],w[M][N]={{′W′,′W′,′W′,′W′},{′S′,′S′,′S′,′S′},{′H′,′H′,′H′,′H′}};
inti,j;
Thematrix:
{for(j=0;
j++)
%3c"
w[i][j]);
fun(w,a);
TheAstring:
puts(a);
\n\n"
/******************************/
wf=fopen("
out.dat"
w"
fprintf(wf,"
%s"
a);
fclose(wf);
/*****************************/
(2)程序定义了N×
N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),该函数的功能是:
使数组左下半三角元素中的值乘以n。
例如,若n的值为3,a数组中的值为:
则返回主程序后a数组中的值应为:
请勿改动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
conio.h>
#defineN5
voidfun(inta[][N],intn)
=i;
a[i][j]=a[i][j]*n;
{inta[N][N],n,i,j;
FILE*out;
*****Thearray*****\n"
i<
j<
j++)
{a[i][j]=rand()%10;
%4d"
a[i][j]);
printf("
}
n=rand()%4;
n=%4d\n"
n);
fun(a,n);
*****THERESULT*****\n"
i++)
{for(j=0;
j++)printf("
out=fopen("
j++)a[i][j]=i*j+1;
fun(a,9);
fprintf(out,"
fprintf(out,"
fclose(out);
(3)请编写函数fun,该函数的功能是:
统计各年龄段的人数。
N个年龄通过调用随机函数获得,并放入主函数的age数组中。
要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。
结果在主函数中输出。
#defineN50
#defineM11
voidfun(int*a,int*b)
b[j]=0;
/*数组b初始化为0*/
if(a[i]>
=100)
b[10]++;
/*如果年龄大于等于100,b[10]自增1*/
else
b[a[i]/10]++;
/*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/
doublernd()
{statict=29,c=217,m=1024,r=0;
r=(r*t+c)%m;
return((double)r/m);
intage[N],i,d[M];
intb[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};
i++)
age[i]=(int)(115*rnd());
/*产生一个随机的年龄数组*/
Theoriginaldata:
printf((i+1)%10==0?
"
%4d\n"
:
"
age[i]);
/*每行输出10个数*/
fun(age,d);
%4d---%4d:
i*10,i*10+9,d[i]);
Over100:
%4d\n"
d[10]);
fun(b,d);
Over100:
%4d"
(4)给定程序中,函数fun的功能是:
将a所指3×
5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
例如,有下列矩阵:
1 2 3 4 534512
1 2 3 4 5
若k为2,程序执行结果为
3 4 5 1 2
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
voidfun(int(*a)[N],intk)
{inti,j,p,temp;
/**********found**********/
for(p=1;
p<
= k ;
p++)
{temp=a[i][0];
N-1 ;
j++)a[i][j]=a[i][j+1];
a[i][N-1]= temp ;
main()
{intx[M][N]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;
Thearraybeforemoving:
%3d"
x[i][j]);
fun(x,2);
Thearrayaftermoving:
(5)下列给定程序中,函数fun的功能是:
计算N×
N矩阵的主对角线元素和反向
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 基础 语言程序设计 学分 复习资料