C语言习题2Word文档格式.docx
《C语言习题2Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言习题2Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
4,下列程序段的输出结果为(A)。
floatk=0.8567;
printf("
%06.1f%%"
k*100);
A、0085.7%
B、.857
C、0085.6%
D、0085.6%%
5以下程序的输出结果是(C)
main()
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
}
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
6,以下程序的运行结果是(B)
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec+=1;
printf(“%d\n”,c);
A、0
B、2
C、1
D、3
7,以下不是无限循环的语句为(C)。
A、for(;
;
x++=i);
B、while
(1){x++;
C、for(y=0,x=1;
x>
++y;
x=i++)i=x;
D、for(i=10;
i--)sum+=i;
8,以下对一维整型数组a的正确说明是(B)。
A、intn;
scanf("
%d"
&
n);
inta[n];
B、#defineSIZE10(换行)inta[SIZE];
C、inta(10);
D、intn=10,a[n];
9,下列语句中,不正确的是(C)。
A、staticchara[2]={'
1'
};
B、staticchara[2]={1,2};
C、staticchara[2]={'
'
2'
3'
D、staticinta[2]={'
10,在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(D)。
A、传递方式由用户指定
B、地址传递
C、由实参传给形参,再由形参传回实参
D、单向值传递
11,C语言执行程序的开始执行点是(B)。
A、程序中第一个函数
B、程序中的main函数
C、程序中第一条可以执行语言
D、包含文件中的第一个函数
12,若有定义:
intaa[8];
则以下表达式中不能代表数组元aa[1]的
地址的是(D)。
A、&
aa[0]+1
B、aa+1
C、&
aa[1]
aa[0]++
13,执行下列语句后的结果为(D)。
intx=3,y;
int*px=&
x;
y=*px++;
A、x=3,y=4
B、x=3,y不知
C、x=4,y=4
D、x=3,y=3
14,当说明一个结构体变量时系统分配给它的内存是(A)。
A、各成员所需内存量的总和
B、成员中占内存量最大者所需的容量
C、结构中最后一个成员所需内存量
D、结构中第一个成员所需内存量
15,应用缓冲文件系统对文件进行读写操作,打开文件的函数名为(B)。
A、close
B、fopen
C、fclose
D、open
二,填空
1,以下程序运行后的输出结果是_b____。
{charm;
m='
B'
+32;
%c\n"
m);
2,以下程序的执行结果是___9__。
{
intk=8;
switch(k)
case9:
k+=1;
case10:
case11:
break;
default:
%d\n"
k);
3,dowhile循环结构初始条件为False时循环体被执行__1___次
4,若有以下数组a,数组元素:
a[0]~a[9],其值为941282107513该数组的元素中,数值最大的元素的下标是_2____.
5,C语言源程序的基本单位是__函数___.
6,与指针引用有关的两个运算符是*和__&
___
7,结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_类型____,再说明结构体变量
8,调用fopen函数打开一文本文件,在"
使用方式"
这一项中,以“追加”方式打开需填入_a/a+____.
9,已知a=13,b=6,a/b的十进制数值为__2___.
10,设w=5;
w+=-2;
则w的值为__3___.
三,【程序设计】
功能:
用函数求N个整数中能被5整除的最大的数,如存在,
则返回这个最大值,如果不存在则返回0。
voidTestFunc();
intfind(intarr[],intn)
intm=0;
/**********Begin**********/
inti;
for(i=0;
i<
n;
i++)
if(arr[i]%5==0&
arr[i]>
m)
m=arr[i];
/**********End**********/
return(m);
#defineN10
#include"
stdlib.h"
stdio.h"
voidmain()
inta[N],i,k;
N;
scanf("
a[i]);
%5d"
a[i]);
if((i+1)%5==0)printf("
\n"
);
k=find(a,N);
if(k==0)
0\n"
else
themaxis:
TestFunc();
voidTestFunc()
FILE*IN,*OUT;
intn;
inti[5];
into;
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
5;
n++)
fscanf(IN,"
i[n]);
o=find(i,5);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
]
四,【程序改错】【参考答案】
根据整型形参m,计算如下公式的值:
doubley=0;
y=1/2+1/8+1/18+...+1/2m*mwhile(i<
=m)while(i<
m+1)y+=x;
或y=y+x;
或y=x+y;
doublefun(intm)
/**********ERROR**********/
doubley=0
doublex;
inti=1;
while(i<
x=1.0/(2*i*i);
y=+x;
i++;
return(y);
Entern:
"
&
\nTheresultis%1f\n"
fun(n));
}
五,【程序填空】
产生并输出杨辉三角的前七行。
1
11
121
1331
14641
15101051
1615201561
注:
填空时,请使用下标法引用数组元素
#include<
stdio.h>
voidmain()
inta[7][7];
inti,j,k;
for(i=0;
7;
a[i][0]=1;
a[i][i]=1;
for(i=2;
/**********FILL**********/
for(j=1;
j<
__=i___;
j++)
/**********FILL**********/a[i][j]=_j<
I+1____;
/**********FILL**********/for(j=0;
j-1<
i_____;
j++)printf("
%6d"
a[i][j]);