国家二级C语言机试(操作题)模拟试卷834
程序填空题
1.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、3l 1、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
int fun(int x)
{ int n,s1,s2,s3,t;
n=0;
t=100;
/**********found**********/
while(t<=___1___){
/**********found**********/
s1=t%10;s2=(___2___)%10;s3=t/100;
/**********found**********/
if(s1+s2+s3==___3___)
{printf(\\
(1)999
(2)t/10
(3)x
解析:在100~999之间(含100和999)所有整数中,取x的个位、十位和百位,可由x%10,x/10再对10求余、x/100分别得到。第一空:是补充while循环的终止条件,题干要求fun寻找100~999之间满足条件的数x,因此,循环终止条件是999,故第一空处应填“999”。第二空:“s1=t%10; s2=(___2___)%10;s3=t/100;”可知s1求得t的个位数,s3求得t的百位数,因此,s2是求t的十位数。(t/10)变量t变成两位数,再次对10取余便得到t的十位数,因此第二空处应为“t/10”。第三空:“if(s1+s2+s3=___3___)”是判断t是否满足题干条件:各位上数字之和为x,故第三空处应为“x”。
程序修改题
2.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当S中的数为:7654321时,t中的数为:642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
/**********found**********/
void fun(long s,long t)
{long s1=10;
s/=10;
*t=s%10;
/**********found**********/
while(s<0)
( s=s/10 0;
*t=s%10*s1+*t;
s1=s1*10;
}
}
main()
{ long s,t;
printf(\\
(1)void fun(long s,long*t)
(2)while(s>0)
解析:函数目的是取出长整型变量s中偶数位上的数。(1)第一个标识下的形参t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t在函数定义中应该被定义为一个指针变量,即“void fun(long s,long t)”改为“void fun(long s,long*t)”。(2)第二个标识下的while循环控制表达式“s<0”要求s小于0才进入循环。而s的值总是大于0,故将“while(s<0)”改为“while(s>0)”。
程序设计题
3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
}STREC;
void fun(STREC a[])
{
}
main()
{STREC s[N]={{\\
STREC tmp;
int i,j;
fOr(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(a[i].s<a[j].s){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;}
解析:(1)在fun函数中,通过循环对成绩记录进行排序。(2)首次查找到最大的记录,第二次循环查找第二大的记录,依次实现对成绩记录的排序。
本文档预览:3600字符,共2635字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载