}
printf(\}
main() {
NODE *head;
head = Creatlink(8, 22); outlink(head); }
第1处:p->next=NULL;应改为p=s;
第2处:s->data=rand()%m;应改为s->data=rand()%(m-1) 第3处:return p;应改为return h;
编程题
请编写一个函数float fun(double h),函数的功能是对变量h 中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)
例如:若h值为8.32433,则函数返回8.32,若h值为8.32533,则函数返回8.33
#include
float fun ( float h ) { }
main( ) {
float a; FILE *out;
printf ( \ scanf ( \
printf ( \ printf ( \
printf ( \ out = fopen(\
fprintf(out, \ fclose(out); }
答案是:
float fun(float h) {
long t; float s; h=h*1000; t=(h+5)/10; s=(float)t/100.0; return s; }
第17套
填空题
给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各
分段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[1],成绩为80到89的人数存到 b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中
例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b数组中存放的数据应是1、2、1、3、0、2。 注意:部分源程序给出如下
请勿改动主函数main和其他函数中的任何内容,仅在横线上填如所编写的若干表达式或语句。
试题程序:
#include
void fun(int a[], int b[], int n) {
int i;
for (i=0; i<6; i++) b[i] = 0;
for (i=0; i<___1___; i++) if (a[i]<60) b[5]++; ___2___
b[(a[i]-60)/10]++; }
main() {
int i, a[100] = {93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6]; fun(___3___, 9);
printf(\ for (i=0; i<6; i++)
printf(\ printf(\
}
第1处填空:n 第2处填空:else 第3处填空:a,b
改错题
下列给定程序中,函数FUN的功能是:计算并输出K以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500,则函数值为4622。
请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确结果。 注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构! 试题程序:#include
int m = 0, mc = 0;
while ((k>=2) && (mc<10)) {
/********found********/ if ((k=0) || (k=0)) {
m = m+k; mc++; } k--;
}
return m;
/********found********/ ___ì???___ main() {
printf(\}
第1处:if((k=0)||(k=0))应改为if((k==0)||(k==0)) 第2处:应填}
编程题
请编写一个函数fun(char *s)该函数的功能是把字符串中的内容逆置。
例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba. 注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:
#include
void fun ( char *s) { }
main() {
char a[N]; FILE *out;
printf ( \ gets ( a );
printf ( \ puts( a ); fun ( a ); printf(\
printf ( \ puts ( a );
strcpy(a, \ fun(a);
out = fopen(\ fprintf(out, \ fclose(out); }
答案是:
void fun (char *s) {
char ch; int i,m,n; i=0;
m=n=strlen(s)-1; while(i<(n+1)/2) {
ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--; } }
第18套
填空题
Str为一个字符序列.请补充FUN函数的功能是:查找STR中值为X 的元素,返回找到值为X的元素个数,并把这些值为X的元素下标依次保存在数组BB中.
例如,在‖abcdefahij‖中查找‘A’,结果为:2个‘A’,下标依次为0、6。
注意:部分源程序给出如下
请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:#include
int fun(char *str, char ch) {
int i = 0, n = 0; char t = ch; char *p = str; while (*p) {
if (___1___) ___2___; p++; i++; }
return ___3___; }
main() {
char str[N]; char ch; int i, n;
printf(\ gets(str);
printf(\ puts(str);
printf(\ scanf(\ n = fun(str, ch);
printf(\ printf(\ for (i=0; i printf(\ } 第1处填空:*p==t或t==*p 第2处填空:bb[n++]=i 第3处填空:n