1253C语言程序设计AWord格式.docx
《1253C语言程序设计AWord格式.docx》由会员分享,可在线阅读,更多相关《1253C语言程序设计AWord格式.docx(16页珍藏版)》请在冰豆网上搜索。
y>
5)的相反表达式为(x!
=011y<
=5)
6.若x=5,Y=10,则x!
=y的逻辑值为1。
7.假定二维数组的定义为“inta[3][5];
,则该数组所占存储空间的字节数为60
8.使用“typedefcharBB[10][50];
”语句定义BB为含有10行50列的二维字符数组类型。
9.字符串“a八\xxk\\数据”的长度为11
10.假定p所指对象的值为25,p+1所指对象的值为46则,*++p的值为46。
11.假定一个数据对象为int,类型则指向该对象的指针类型为int**
12.假定一个结构类型的定义为“structA{inta,b;
A。
;
};
”,则该类型的长度为12
13.假定要访问一个结构对象x中的数据成员a,则表示方式为x.a。
三、写出下列每个程序运行后的输出结果(每小题6分,共30
1.#include<
stdio.h>
voidmain(){
inti,s=0
for(i二1;
i+十){
if(s>
30)break;
if(i%2==0)s+=i;
}
printf("
s=0od\n"
s)
s=42
2.#include<
voidmain()
inta[9]={36,25,48,24,55,40,18,66,20};
inti,bl,b2;
bl=b2=
for(i=1
a[0];
i<
9;
i++){
if(a[i]>
bl)bl=a[i];
if(a[i]<
b2)b2=a[i];
%d0od\n,bl,b2)
6618
3.#include<
voidSB(charch){
switch(ch){
case'
A'
:
case,a'
printf("
WW”);
break
case'
B'
case'
b'
GG“);
break
default:
printf("
BB“);
break;
)
voidmain(){
charal“'
a'
a2='
B'
,a3二,f'
SB(al);
SB(a2);
SB(a3);
printf("
\n"
);
}
WWGGBB
4.#include<
#defineM6
voidmain()
inti,x;
inta仁M]={10,15
fore=O;
for(i=0;
KM/2
22,37,46,58);
i++){x=a[i];
a[i]=a[M一1一1〕;
a仁M-1一i]=x
6;
i++)print("
ood"
aEi]);
\n"
584637221510
5.#include<
structWorker
charname[15];
intage;
floatpay;
structWorkerx={"
wanghua'
52,2350};
structWorkery,*p
y二x;
P=&
x
%d007.2f\n"
y.age+p一>
age,p一>
pay+20)
1042370.00
四、写出下列每个函数的功能(每小题6分,共12分)
1.intFH()
intx,y=0;
scanf("
oo了,&
x);
while(x!
二一1){y+=x;
scanf("
%d‘,&
x);
returny;
函数功能:
1.求出从键盘上输人的一批整数的总和,以一1作为结束输人的标志。
2.intFF(structIntNode*f)//f为指向一个单链表的表头指针
intn=0
if(!
f)return0;
while(f)
n十+
f=f一>
next;
returnn
假定structIntNode的类型定义为:
structIntNode{intdata;
structIntNode*next;
2.求出并返回由f所指向的单链表中所有结点的个数。
五、按题目要求编写程序或函数(每小题6分,共12分)
1.编写一个程序,利用while循环,计算并打印输出1十1/2+1/3十⋯+1/n的值,其中正整数n值由键盘输入。
假定求和变量用sum表示,计数变量用i表示,sum,i和n均定义为全局变量,sum和i的初值分别被赋予0和1,
1.#include<
stdio.h>
intn,i=1;
doublesum=0;
voidmain()
{
%d"
&
.n);
while(i<
=n)sum+=(double)1/i++;
sum=%if\n"
sum);
2.根据函数原型"
voidDD(inta[],intn,intMM)”编写函数定义,利用双重循环查找并打印输出数组a[n〕中任何两个元素的值等于MM值的元素值。
假定a[i〕十a[j〕等于MM,则
输出格式为:
(a[i],a[j])
2.voidDD(inta[],intn,intMM)
inti,j;
forei=0;
n;
i++)
for(j=i+l;
j<
j++)
if(a[i]+a[j]==MM)printf("
%d,%d\n"
a[i],a[j]);
2010年7月
一、单选题(每小题2分,共20分)
1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A.main)。
2.每个C语言程序文件的编译错误分为(B.2)类。
3.字符串"
a十b=12\n"
的长度为(B.7)。
4.在switch语句的每个case块中,假定都是以breaki吾句结束的,则此switch语句容
易被改写为(D.if)语句。
5.在下面的do-while循环语句中,其循环体语句被执行的次数(C.10)。
inti=0;
doi++;
10);
6.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C.strcat())。
7.若用数组名作为函数调用的实参,传递给形参的是(A.数组的首地址)。
8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组
的首地址大(C.16)个字节。
9.假定s被定义为指针类型char祷的变量,初始指向的字符串为"
Helloworld!
若要使变量p指向s所指向的字符串,则p应定义为(A.char铃p=s;
)。
10.从一个数据文件中读人以换行符结束的一行字符串的函(B.£
getsO)。
二、填空题(每小题2分,共26分)
与2009.7相同
三、写出下列每个程序运行后的输出结果{每小题6分,共30分)
1.:
#include<
voidmainO{
inti,j,k=O;
forCi=O;
i<
5;
i++)
for(j=i;
j<
j十+)k十+忖
%d\n"
k);
15
2.:
intx=20;
inti=2;
whileCi<
x){
ifCx%i==O){printfC"
%d"
i);
x/=i;
i+十;
25
3.:
inta[8]={70,63,54,95,40,75,90,66川
inti,s=O;
8;
i十+)
if(a[i]>
=70&
.&
.a[i]<
=90)s十=a[i];
printfC"
s=%d\n"
s);
s=235
4.拌include<
intWF(intx,inty){
x=x十Y;
y十=xp
returnx十y;
intx=3,y=5;
WF(x,y»
21
5.:
ifinclude<
intLA(int祷a,intn){
inti,s=O;
forCi=O;
i十+)s十=a[i];
returns;
inta[5]={l,2,3,4,5};
intb=LA(a,5)+LA(a十1,3);
b=%d\n"
b);
b=24
四、写出下列每个函数的功能{每小题5分,共12分)
1.intSG(intx){
IIx为大于等于2的整数
if(x==2IIx==3)return1;
whileCi头i<
=x){
if(x%i==0)break;
i十+;
if(i川<
=x)return0;
elsereturn1;
判断x是否为一个素数,若是则返回1,否则返回0。
2.intFindMax(structIntNode*f)
//f为一个单链表的表头指针
it*;
f){printf("
单链表为空\n”),exit
(1)}
x=f一>
data;
while(f){
if(f一>
data>
x)x=f一>
returnx;
假定structIntNode的结点类型定义为:
structIntNode{intdata;
structIntNode*next;
求出并返回由f所指向的单链表中所有结点的最大值。
五、按照题目要求编写程序或函数(每