二级C语言程序设计模拟试题及答案解析(7)
(1/2)程序填空题
第1题
给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数modify的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
typedef struct
{int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{int i;
printf("%d %s:",ame);
for(i=0;i<3;i++)
printf("%5.1",tt.score[i]);
printf("\n");
}
/**********found**********/
void modify(______*ss,float a)
{int i;
for(i=0;i<3;i++)
/**********found**********/
ss->______;*=a;
}
main()
{STU std={1,"Zhanghua",76.5,78.0,82.0};
float a;
printf("\nThe original number and nameand scores:\n");
show(std);
printf("\nInput a number:");
scanf("%f",&a);
/**********found**********/
c语言中struct
modify(______,a);
printf("\nA result of modifying:\n");
show(std);
}
下一题
(2/2)程序填空题
第2题
用筛选法可得到2~n(n<10000)的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中下一个非0数,并从数表中删去该数的所有倍数;依次类推,直到所的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,…。
函数fun的作用是:用筛选法出所有小于等于n的素数,并统计素数的个数作为函数值返回。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int n)
{int a[10000],i,j,count=0;
for(i=2;i<=n;i++)a[i]=i;
i=2;
while(i<n){
/**********found**********/
for(j=a[i]*2;j<=n;j+=______)
a[j]=0;
i++;
/**********found**********/
while(______==0)
i++;
}
printf("\n The prime number between 2 to%d\n",n);
for(i=2;i<=n;i++)
/**********found**********/
if(a[i]!=______)
{count+++;printf(count%15?"%5d":"\n%5d",a[i]);}
return count;
}
main()
{int n=20,r;
r=fun(n);
printf("\nThe number of prime is:%d\n",r);
}
上一题  下一题
(1/2)程序改错题
第3题
下列给定程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如,若k=10,则应输出3628800。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<conio.h>
#include<stdio.h>
long fun(int k)
{
/**********found**********/
if k>1
return(k*fun(k-1));
return 1;
}
main()
{
int k=10;
printf("%d!=%ld\n",k,fun(k));
}
上一题  下一题
(2/2)程序改错题
第4题
下列给定的程序中,函数fun的功能是:为一个偶数寻两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<math.h>
void fun(int a,int*b,int*c)
{
int i,j,d,y;
for(i=3;i<=a/2;i=i+2)
{
/**********found**********/
y=0;
for(j=2;j<=sqrt((double)i);j++)
if(i%j==0)
y=0;
if(y==1)
{
/**********found**********/
d=i-a;
for(j=2;j<=sqrt((double)d);j++)
if(d%j==0) y=0;
if(y==1)
{*b=i;*c=d;}
}
}
}
void main()
{
int a,b,c;
do
{
printf("\nInput a:");
scanf("%d",&a);
}while(a%2);
fun(a,&b,&c);
printf("\n\n%d=%d+%d\n",a,b,c);
}
上一题  下一题
(1/1)程序设计题
第5题
请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
#define N 80
int fun(char*s)
{
}
main()
{char line[N];int num=0;
printf("Enter a string:\n");gets(line);
num=fun(line);
printf("The number of word is:%d\n\n",num);
}
上一题 交卷
交卷
答题卡
答案及解析
(1/2)程序填空题
第1题
给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数modify的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
typedef struct
{int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{int i;
printf("%d %s:",ame);
for(i=0;i<3;i++)
printf("%5.1",tt.score[i]);
printf("\n");
}
/**********found**********/
void modify(______*ss,float a)
{int i;
for(i=0;i<3;i++)
/**********found**********/
ss->______;*=a;
}
main()
{STU std={1,"Zhanghua",76.5,78.0,82.0};
float a;
printf("\nThe original number and nameand scores:\n");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。