c语言试卷带答案函数 c语言函数测试题及答案( 四 )


A.12 34 B.12,34 C.1234 D.12:34
10.union uex {int i;float f;char c;}ex;则sizeof(ex)的值是____________________ 。
A.4 B.5 C.6 D.7
三. 分析程序,写出运行结果 。(每题4分,共20分)
1. 源程序如下,运行时假定键盘输入字符串为``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字符型数字*/
{
if (c=`0`c=`9` )
n = n*10 + c- `0` ; /*数字*/
}
printf(“value=https://www.04ip.com/post/%d|n” ,n);
}
结果为: value=https://www.04ip.com/post/2004。
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398 , 397,396 , 395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89 , 93 , 73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i9;i++)
if(scoreiMax)
{
iPos=i;
iMax=score[iPox];
}
printf(“num=%d , score=%d” , num[iPos];score[iPos]);
结果为: num=311, score=93。
3. 源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i , a[10];
int *p;
p=a;
for(i=0;i10;i++)
scanf(“%d“,p++);
for(p=a;p SPAN;p++)
if (*p%2)printf(“%3d” , *p);
}
结果为: 1 3 5 7 9。
4. 源程序如下,两次运行,分别输入数据13和21
#include
#include
void main(void)
{
int n,s;
scant (“%d” , n);
s=panduan( n);
if(s==1)printf(“yes\n”);
else printf(“no\n);
}
int panduan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j=k,j++)
{
if(n%j==0) break;
}
if(jk) retum(1);
else retum(0);
}
结果为 yes
no
5.源程序如下,运行时假定键盘输入字符为:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str=`a`str=`z`) str-=32;
else if (str=`A`str=`Z`) str+=32;
puts(str);
}
结果为: aXbYcZ。
四. 下列程序中每个划线处有一个错误,改正划线 中的错误,使其实现题目要求 。(每体4分 , 共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正为_________________________ 。
void sum (void) 改正为_________________________ 。
{
int s,i;
for (s=0,i=1;i=100;i++)
{
s=s+ i ++; 改正为__________________________ 。
}
printf (“s=%f” , s) 改正为__________________________ 。
}
2. 源程序实现求x
#include
double pow(float . int) 改正为_________________________ 。
void main(void)
{
int i, n;
float x;
scanf (“%f,%d”,x,n);
for (i=1; i9;i++)
printf(“%d,%e\n”, i, pow(i,x);
} 改正为______________________ 。
double v v pow(float x, int n)
{
int i;
double p=0; 改正为______________________ 。
for (i=1; i i++)改正为_______________________ 。
p*=x;
retum(p);
}
3. 源程序实现排升序 。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i9; i++)
{
iMin=0; 改正为_______________________ 。
for (j=i+1; j10;j++)
if(a[iMin] iMin="j;"改正为_______________________ 。
if (iMin==i) 改正为_________________________ 。

推荐阅读