全国计算机二级C语言上机练习题及答案(三)
[考试复习题库精编合集]2021年9月全国计算机等级《二级C语言程序设计》上机模考试卷(3)
B、12344
C、12334
D、12234
答案:B;
18、【单选题】
有以下函数intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下关于aaa函数的功能叙述正确的是()。[1分]
A、求字符串S的长度
B、比较两个串的大小
C、将串S复制到串t
A、99
B、520
C、1320
D、2021
答案:B;
3、【单选题】
若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。cb='b';k=10;printf("%X,%o,”,ch,ch,k);printf("k=%%d\n",k);[1分]
A、因变量类型与格式描述符的类型不匹配,输出无定值
B、3,14,2
C、2,04,1
D、2,14,1
答案:A;
33、【单选题】
若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是(。[1分]
A、随机值
B、0
C、x的地址
D、P的地址
答案:B;
34、【单选题】
对下述程序的判断中,正确的是( )。#includemain( ){char*p,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestrin9:");gets(s);while(*p)putchar(*p++);}}[1分]
B、str与P的类型完全相同
计算机二级考试C语言上机试题(100题)
1.程序填空题在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。
下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。
例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>void fun(___1___,int n){double count=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)___2___;average=___3___;for(i=0;i<n;i++)if(a[i]<average){if(i%5==0)printf("\n");printf("%d,",a[i]);}}main(){int a[1000];int i=0;printf("\nPlease enter datas(end with 0):");do{scanf("%d",&a[i]);}while(a[i++]!=0);fun(a,i-1);}【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n2.程序修改题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)例如:若m中的值为5,则应输出1.463611。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int m){double y=1.0;int I;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){int n=5;printf("\nThe result is %lf\n", fun(n));}【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);3.程序设计题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
计算机二级C语言测试题(含答案)
A. 2 B. 3 C. 4 D. 5
答案:
1. A
2. F
3. C
4. C
5. A
6. B
7. B
C语言测试题(第三章)
1.以下程序的输出结果是________。
main()
{
int k=8765;
printf("*%-06d*\n",k);
}
A.输出格式描述符不合法 B.*008765*
C.*8765 * D.*-08765*
【答案】 C.
2.有程序段如下:
int i;
float f;
scanf("i=%d,f=%f",&i,&f);
若要求把数值100和765.12分别赋给变量i和f,则正确的输入格式为________。
A.100765.12 B.i=100,f=765.12
z=x/y;
}
else
break;
}
printf("%5.2f\n",y);
}
运行该程序,按如下形式从键盘输入数据,程序的数出结果是________。
键盘输入数据:3.6,2.4
A. 1.50 B. 1.60 C. 2.0 D. 2.40
答案:
1. C 2. C 3. C 4. A 5. B
C语言测试题(第六章)
答案:
1. B
2. D
3. k=p
4.①str[i]!= '\0'或简写成str[i]
②str[i]>= 'a'&& str[i]<= 'z'
全国计算机二级《C语言》考试题库与答案
全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。
什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。
全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。
以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。
计算机二级C语言考试上机试题及答案
xx年计算机二级C语言考试上机试题及答案1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进展后序遍历的结果为( )。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程9.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性10.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
全国计算机等级考试二级C语言程序设计真题精选3(含答案)
全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
全国计算机等级考试二级C语言上机题库(全)
int i; for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返 回。例如:当形参 n 的值为 10 的时,函数返回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指字符串在 str 所指字符串中出现次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’\0’) 3. 程序设计 请编写一个函数 fun,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;
二级C语言上机真题及答案(最新完整版)
1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数5. void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if (i%j!=0)flag=1;else{flag=0;break;}}if (flag==1&j>=i){if (k>0){xx[g++]=i;k--;}elsebreak;}}}6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。
3月全国计算机等级考试二级c语言最新上机考试题库及答案-精品
3月全国计算机等级考试二级c语言最新上机考试题库及答案-精品一、填空给定函数的功能是调用fun函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE 3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ; i++) 2. t[2*sl] =` 0`;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c 数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100+(a %10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText和WriteText实现。
答案:*fw str str二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案: long *t sl = sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案: (1)fp (2)fclose(fp) (3)fname二、修改将n个无序整数从小到大排序。
计算机二级C语言上机题库及答案(100套)
~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和*作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
全国计算机等级考试二级C语言上机考试题库及答案
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
国家二级C语言机试(操作题)模拟试卷3(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷3(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如,当形参n的值为10时,函数返回:-0.204491。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int n){ int i,k;double s,t;s=0;/**********found**********/k=____1____;for(i=1;i<=n;i++) {/**********found**********/t=____2____;s=s+k*(2*i-1)*(2*i+1)/(t*t);/**********found**********/k=k*____3____;} return s;}mairl( ){ int n=-1;while(n<0) { print f(“Please input(n>0):”);scanf(“%d”,&n);} printf(“\nThe result is:%f\n”,fun(n));}正确答案:(1)1(2)2*i(3)(-1)解析:第一空:由“s=s+k*(2*i-1)*(2*i+1)/(t*t);”可知t*t表示的是级数项的分母,t=2*i,t=2,4,6…,故t的初始化值应为1,因此第一空处应为“1”。
第二空:由第一空的分析可知,第二空处应为“2*i”。
第三空:由“s=s+k*(2*i-1)*(2*i+1)/(t*t);”可知,k是级数项的(-1)n-1部分,所以在循环中k是每次都乘以-1,故第三处应为“(-1)”。
程序修改题2.给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n 项之和。
全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析)-交互50
全国计算机等级考试2019年二级C语言程序设计模拟试题3(总分100, 做题时间120分钟)选择题(每题 1 分,共 40 分)1.下列叙述中正确的是()。
SSS_SINGLE_SELA栈与队列都只能顺序存储B循环队列是队列的顺序存储结构C循环链表是循环队列的链式存储结构D栈是顺序存储结构而队列是链式存储结构分值: 1答案:B栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构。
2.算法空间复杂度的度量方法是()。
SSS_SINGLE_SELA算法程序的长度B算法所处理的数据量C执行算法所需要的工作单元D执行算法所需要的存储空间分值: 1答案:D算法的空间复杂度是指执行这个算法所需要的存储空间,包括:①输入数据所占的存储空间;②程序本身所占的存储空间;③算法执行过程中所需要的额外空间。
3.设有栈 S 和队列 Q,初始状态均为空。
首先依次将 A, B, C, D, E, F 入栈,然后从栈中退出三个元素依次入队,再将 X, Y, Z 入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
SSS_SINGLE_SELADEFXYZABCBFEDZYXCBACFEDXYZCBADDEFZYXABC分值: 1答案:B栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
队列是指允许在一端进行插入,而在另一端进行删除的线性表。
将 A, B,C, D, E, F 入栈后,栈中元素为 ABCDEF,退出三个元素入队,队列元素为 FED,将 X, Y, Z 入栈后栈中元素为 ABCXYZ,全部入队后,队列元素为 FEDZYXCBA。
4.某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的后序序列为()。
最新最全二级c语言上机题105套参考答案
1. 程序填空题(1) M (2) < (3) k2. 程序改错题(1) || 改为&& if((tt[i]>=‟a‟ && (tt[i]<=‟z‟))(2) +改为-tt[i]-=32;3. 程序设计题void fun( int m, int *k, int xx[] ){int i,j;int n=0;for(i=4;i<m;i++){for (j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;}第2套题参考答案1.程序填空题(1) j++ 或j+=1, ++j, j=j+1 (2) s[i]=t1[i] (3) j2. 程序改错题(1) 将,改为; for(j=i+1; j<6; j++)(2) *(pstr+j) *(patr+i)=pstr+j;3.程序设计题int fun(char *ss, char c){int i, n=0;for(i=0;ss[i]!='\0';i++)if(ss[i]==c)n++;return n;}另一种写法int fun(char *ss, char c){int i=0;for(;*ss!='\0';ss++)if(*ss==c)i++;return i;}1. 程序填空题(1) && (2) 0 或者…\0‟(3) s[j] 或*(s+j)2. 程序改错题(1)将<改为<= for(i=2; i<=m; i++)(2)将1改为1.0 y+=1.0/(i*i); y+=(double)1/(i*i);3. 程序设计题void fun ( int a[3][3], int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}第4套参考答案1.程序填空题(1) s[i] (2) …9‟(3) *t=n2.程序改错题(1) t=*x; *x=y;(2) return t;3.程序设计题void fun (int *a, int *n){int i,k=0;for(i=1; i<1000; i++)if(((i%7==0) || (i%11==0)) && (i%77 !=0))a[k++]=i;*n=k;}第5套参考答案1.程序填空题(1) 1 (2) s[k]或*(s+k) (3) c2.程序改错题(1) long s=0, t=0; (2) t=t/10;3.程序设计题void fun(char *tt, int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;for(i=0; tt[i]!='\0'; i++)if((tt[i]>='a') && (tt[i]<='z'))pp[tt[i]-'a']++;} //tt[i]可以用*tt代替,i++可以用tt++代替,省略i=0第6套参考答案1.程序填空题(1) t=i; (2) i (3) …\0‟或者02.程序改错题(1)while(fabs(t)>=num)(2)t=s/n;3.程序设计题void fun (char a[], char b[], int n){int i,j=0;for(i=0;a[i]!=0;i++)if(i!=n)b[j++]=a[i];b[j]='\0';}第7套参考答案1.程序填空题(1) …\0‟(2) 0 (3) c2.程序改错题(1) double sum=0.0; (2) sum/=c;3.程序设计题float fun(int n){int i, t=0;float s=0.0;for(i=1;i<=n;i++){t=t+i;s=s+1.0/t;}return s;}第8套参考答案1.程序填空题(1) i++ (2) m (3) m2.程序改错题(1)while((high>=2) && (n<10) ) //丢了括号(2)break; //丢了分号3.程序设计题double fun(){double x1=0.0, x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=0.000001);return x1;}第9套参考答案1.程序填空题(1) N (2) N-1 (3) 02.程序改错题(1) s=s+(double)(n+1)/n (2) return t;3.程序设计题int fun( int t){int f0=0, f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f<t);return f;}第10套参考答案1.程序填空题(1) 0 (2) j-- (3) j2.程序改错题(1) double f(double x) (2) return s;3.程序设计题double fun( int m ){double s=0.0,t=0.0;int i;for(i=1;i<=m;i++)t=t+log(i);s=sqrt(t);return s;}第11套参考答案1.程序填空题(1) N (2) t[i][j] (3) t[j][i]2.程序改错题(1) (m)/(n) (2) value3.程序设计题void fun( char *a ){char *p=a;int i=0;while (*p!='\0' && *p=='*'){p++;}while(*p!='\0'){a[i++]=*p;p++;}a[i]='\0';}另一种解法,用指针void fun( char *a ){char *p=a;while (*p=='*') p++;for (;*p!='\0';p++,a++)*a=*p;*a='\0';}第12套参考答案1.程序填空题(1) t[][N] (2) i=0; i<N; (3) s2.程序改错题(1) int fun(…) (2) else if(m>a[mid])3.程序设计题void fun( char *a, char *p ){char *t=a;int i=0;for(; t<=p;t++)if(*t!='*')a[i++]=*t;for(;*t!=0;t++)a[i++]=*t;a[i]='\0';}另一种用指针void fun( char *a, char *p ){char *t=a;for(; t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!=0;t++)*(a++)=*t;*a='\0';}第13套参考答案1.程序填空题(1) sum=0; (2) t[i][i] (3) 12.程序改错题(1) double r; (2) while(fabs(n-m)>0.001)3.程序设计题void fun( char *a, char *h,char *p ){int i=0;char *q=a;while(q<h){ a[i]=*q; i++; q++; }while(q<=p){if(*q!='*'){a[i]=*q; i++;}q++;}while(*q){ a[i]=*q; i++; q++; }a[i]=0;}第14套参考答案1. 程序填空题(1)1 (2) j++ (3) j2. 程序改错题(1) t=a; a=b; b=t; (2) return b;3. 程序设计题void fun( char *a ){int i=0;char *p=a;while(*p){if(*p!='*')a[i++]=*p;p++;}a[i]=0;}另一种用for循环void fun( char *a ){int i, j=0;for(i=0; a[i]!=\0‟; i++){if(a[i]!='*')a[ij++]=a[i];}a[j]=0;}第15套参考答案1. 程序填空题(1)a[i]%2==0 (2) a[j] (3) j2. 程序改错题(1) int fun(int n) (2)if(n==1)3. 程序设计题void fun( char *a,int n ){int i=0, j=0;char *p=a, *q=a;while (*p)p++;p--;while(*p=='*'){i++;}if(i>n){while(*q && q<(p+n+1)){a[j++]=*q;q++;}a[j]=‟\0‟;}第16套参考答案1. 程序填空题(1)a[i] (2) a[j] (3) a[j]2. 程序改错题(1)去掉分号(2)case 1: case 2 : return 1;3. 程序设计题void fun(STREC *a){int i;double sum=0.0, average;for(i=0;i<N;i++)sum=sum+a->s[i];average=sum/N;a->ave=average;}第17套参考答案1. 程序填空题(1)a[] (2) 2 (3) i+12. 程序改错题(1)sum=0.0 (2)if((i+1) % 5==0)3. 程序设计题double fun( STREC *a, STREC *b, int *n ){double sum=0.0, ave;int i,j=0;for(i=0;i<N; i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s<ave)b[j++]=a[i]; //结构体整体赋值return ave;}第18套参考答案1. 程序填空题(1) 1 (2) i (3) a[p+i]2. 程序改错题(1)float k; (2)if(*a<*c)3. 程序设计题int fun( STREC *a, STREC *b ){int max, i,j=0;max=a[0].s;for(i=1; i<N; i++)if(a[i].s>max)max=a[i].s;for(i=0;i<N;i++)if(a[i].s==max)b[j++]=a[i];return j;}第19套参考答案1. 程序填空题(1)char (2) ch=‟9‟(3) …0‟2. 程序改错题(1) b[k]=*p (2)b[k++]= “”; 或者b[k]=”“; k++;3. 程序设计题double fun( STREC *h ){double sum=0, ave;STREC *p=h->next ;while(p!=NULL){sum=sum+p->s;p=p->next ;}ave=sum/N;return ave;}第20套参考答案1. 程序填空题(1) n/2 (2) i (3) a[n-1-i]2. 程序改错题(1) n=*-…0‟ (2) n=n*8+p-…0‟;3. 程序设计题STREC fun( STREC *a, char *b ){int i;STREC str={"\0",-1};for(i=0;i<16;i++)if(strcmp(a[i].num,b)==0)str=a[i];return str;}第21套参考答案1.程序填空题(1) 999 (2) t/10 (3) x2.程序改错题(1) void fun(long s, long *t) (2) while(s>0) 3.程序设计题void fun( STREC a[] ){int i, j, k;STREC t;for(i=0; i<N-1; i++){k=i;for (j=i+1;j<N;j++)if(a[j].s>a[k].s)k=j;if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t;}}}第22套参考答案1.程序填空题(1) 0 (2) x (3) t++2.程序改错题(1) int i, s1; (2) s[s1-i-1]3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+(a%10)*1+(b/10)*1000+(b%10)*10;}第23套参考答案1.程序填空题(1) 0 (2) x*10 (3) n/102.程序改错题(1) *t=0; (2) if(d%2==1)3.程序设计题void fun(char p1[], char p2[]){int i,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i+j]=p2[j];p1[i+j]='\0';}第24套参考答案1.程序填空题(1) 1 (2) s>0 (3) i*102.程序改错题(1)int fun(int n, int xx[][M]) (2) printf( "%d", xx[i][j] );3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*1+(b%10)*100;}第25套参考答案1.程序填空题(1) 0.0 (2) n (3) (t*t)2.程序改错题(1) for(i = 0; str[i]!='\0'; i++) (2) if(substr[k+1]=='\0')3.程序设计题double fun ( double eps){double s=1,p1=1,p2=1,t=1;int i=1;while(t>eps){p1=p1*i;p2=p2*(2*i+1);t=p1/p2;s=s+t;i++;}return 2*s;}第26套参考答案1.程序填空题(1) 10 (2) 0 (3) x2.程序改错题(1) if (n==0) (2) result=result*(n--); or result*=n--;3.程序设计题long fun ( char *p){long n=0;int flag=1, m;if(*p=='-'){p++; flag=-1;}else if (*p=='+'){p++;}while(*p!=0){m=*p-'0';n=n*10+m;p++;}n=flag*n;return n;}第27套参考答案1.程序填空题(1) (double)(2*k+1) or (double)3 (2)> (3)(t+1)2.程序改错题(1) double fun ( int n ) //教材没错,原题是void(2) s = s + (double)a / b;3.程序设计题int fun (int a[][M]){int i, j, max;max=a[0][0];for(i=0;i<2;i++){for(j=0;j<M;j++)if(a[i][j]>max)max=a[i][j];}return max;}第28套1.程序填空题(1) 1 (2) i*2 (3)-12.程序改错题(1) k++; //丢了分号(2) if(m==k)3.程序设计题void fun(int a[],int n, int *max, int *d){int i;*max=a[0]; *d=0;for(i=1;i<n;i++)if(a[i]>*max){ *max=a[i]; *d=i; }}第29套1.程序填空题(1) 0 (2) i++ ((2.0*i)*(2.0*i))2.程序改错题(1) void fun (char *s, char *t) (2) t[2*d] = '\0';3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0 && s[i]%2!=0)t[j++]=s[i];t[j]='\0';}第30套1.程序填空题(1) s[i] (2) k (3) 02.程序改错题(1) while ( *w ) //原题无* (2) if(*r==*p) 3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;}第31套参考答案1.程序填空题(1) k (2) N (3) a[k][i]2.程序改错题(1) for(i=strlen(t)-1;i;i--) //教材正确(2) if(t[j]>t[j+1]) 3.程序设计题void fun(char *ss){int i,j,n;n=strlen(ss);for(i=0;i<n;i++)if(i%2==1 && ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第32套参考答案1.程序填空题(1) k (2) N-1 (3) temp2.程序改错题(1) void fun(int a[][M], int m) (2) a[j][k] = (k+1) * (j+1) ;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*10+(a%10)*1000+b/10+(b%10)*100;}第33套参考答案1.程序填空题(1) j (2) 0 (3) i++2.程序改错题(1) for(i = 2 ; i <= m ; i++) (2) y -= 1.0 /(i * i) ;3.程序设计题int fun(int score[],int m, int below[]){double sum=0.0, ave;int i,j=0;for(i=0;i<m;i++)sum=sum+score[i];ave=sum/m;for(i=0;i<m;i++)if(score[i]<ave)below[j++]=score[i];return j;}第34套参考答案1.程序填空题(1) t, s (2) s[i] (3) 02.程序改错题(1) if (i%k==0) (2) if (k==i)3.程序设计题void fun (int x, int pp[], int *n){int i,j=0;for(i=1;i<x;i++)if(x%i==0 && i%2==1)pp[j++]=i;*n=j;}第35套参考答案1.程序填空题(1) s (2) -- (3)return 02.程序改错题(1) double fun (int n) (2) s=s+(double)a/b;3.程序设计题void fun(int m,int k,int xx[]){int i, j;m=m+1;j=0;while(j<k){ for(i=2;i<m;i++)if(m%i==0)break;if(m==i)xx[j]=i; j++;}m++;}}另一种用for循环编写的void fun(int m,int k,int xx[]){int i, j, n;for(i=m+1,n=0; n<k;i++){ for(j=2;j<i;j++)if(i%j==0)break;if(i==j) xx[n++]=i;}}第36套参考答案1.程序填空题(1) n++ (2) 0 (3)s++2.程序改错题(1) t=t+s[k]; or t+=s[k] ; (2) *aver=ave;3.程序设计题int fun(int *s,int t,int *k){int i, max;max=s[0]; *k=0;for(i=1;i<t;i++)if(s[i]>max){ *k=i;max=s[i];}}第37套参考答案1.程序填空题(1) *s (2) s++ (3) n2.程序改错题(1) { //丢了函数的括号(2) if (x[j]>=xa) //不是=> 3.程序设计题float fun(int m, int n){float p1=1,p2=1, p3=1;float p;if(m<n){t=m;m=n;n=t;}for(i=1;i<=m;i++)p1=p1*i;for(j=1;j<=n;j++)p2=p2*j;for(k=1;k<=(m-n);k++)p3=p3*k;p=p1/(p2*p3);return p;}可以先建立一个求阶乘的函数,然后调用long jc(int m){long s=1;int i;for(i=1;i<=m;i++) s=s*i;return s;}float fun(int m, n){float p;p=1.0*jc(m)/jc(n)/jc(m-n);}第38套参考答案1.程序填空题(1) …0‟or 48 (2) s++ (3) sum2.程序改错题(1) if((k%13==0)||(k%17==0)) (2) }3.程序设计题double fun( int n){int i;double sum=0.0;for(i=0;i<n;i++)if(i%3==0 && i%7==0)sum=sum+i;sum=sqrt(sum);return sum;}第39套参考答案1.程序填空题(1) *s (2) 1 (3) k[n]2.程序改错题(1) double float fun(int k) (2) return s;3.程序设计题double fun(int n){double s=0.0, t;int i;for(i=1;i<=n;i++){t=1.0/(i*(i+1));s=s+t;}return s;}第40套参考答案1.程序填空题(1) i (2) ps[j] (3) tp2.程序改错题(1) double fun(int n) (2) return sum; 3.程序设计题double fun(double x, int n){double s=1.0,t=1.0, p=1.0;int i;for(i=1;i<=n;i++){t=t*x;p=p*i;s=s+t/p;}return s;}第41套参考答案1.程序填空题(1) double (2)f1 (3)f32.程序改错题(1) while(p!=NULL) (2) p=p->next3.程序设计题int fun(char *str){int n=0,i,flag=1;char *p=str;while(*p!='\0'){n++;p++;}for(i=0;i<n/2;i++){ if(str[i]==str[n-i-1]);else{flag=0;break;}}return flag;}第42套参考答案1.程序填空题(1) h->next (2) p->next (3)>2.程序改错题(1) p=h->next; (2) p=p->next;3.程序设计题void fun (int (*s)[10], int *b, int *n, int mm, int nn){int i,j,k=0;for(i=0;i<mm;i++)for(j=0;j<nn;j++)b[k++]=s[i][j];*n=k;}第43套参考答案1.程序填空题(1) NODE (2) next (3)r2.程序改错题(1) if(i%2 || s[i]%2==0) (2) t[j]='\0';3.程序设计题void fun (int (*s)[10], int *b, int *n,int mm, int nn){int i,j,k=0;for(i=0; i<nn;i++)for(j=0;j<mm;j++)b[k++]=s[j][i];*n=k;}第44套参考答案1.程序填空题(1) next (2) NULL (3) r2.程序改错题(1) r=t; (2) r=t;3.程序设计题void fun(char a[M][N],char *b){int i,j,k=0;for(i=0;i<M;i++)for(j=0; a[i][j]!='\0'; j++)b[k++]=a[i][j];b[k]='\0';}第45套参考答案1.程序填空题(1) p->next (2) q (3)p->next2.程序改错题(1) while(*s!= '\0') (2) s++;3.程序设计题void fun(int *w, int p, int n){int i,j,t;for(i=0;i<=p;i++){t=w[0];for(j=0;j<n-1;j++)w[j]=w[j+1];w[j]=t;}第46套参考答案1.程序填空题(1)double (2)f1 (2) f22.程序改错题(1)char* fun(char *s, *t) (2) ss++ (3) tt++3.程序设计题void fun (char *w,int m){int i,j,n;char ch;n=strlen(w);for(i=0;i<3;i++){ch=w[0];for(j=1;j<n;j++)w[j-1]=w[j];w[j-1]=ch;}}第47套参考答案1.程序填空题(1) x (2) p (3) s2.程序改错题(1) long k=1; (2) num/=10;3.程序设计题float fun ( float *a , int n ){int i;float ave=0;for(i=0;i<n;i++)ave=ave+a[i];ave=ave/n;return ave;}第48套参考答案1.程序填空题(1) FILE * (2) fp (3) ch2.程序改错题(1) s[j++]=s[i]; (2) s[j]='\0';3.程序设计题void fun(char (*s)[N],char *b){int i,j,k=0;for(i=0;i<N;i++)for(j=0;j<M;j++)b[k++]=s[j][i];b[k]='\0';}第49套参考答案1.程序填空题(1) N (2) k (3) ss[i]2.程序改错题(1) int k=0; (2) while(*p || *q)3.程序设计题#include <stdio.h>void fun( char *a ){int i=0;char *p=a;while(*p && *p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';}第50套参考答案1.程序填空题(1) fw (2) str (3) str2.程序改错题(1) void fun (long s, long *t) (2) sl = sl*10;3.程序设计题int fun( STREC *a, STREC *b ){int i,n=0;*b=a[0];for(i=1;i<N;i++)if(a[i].s<b->s)*b=a[i];for(i=0;i<N;i++)if(a[i].s==b->s){b[n]=a[i];n++;}return n;}第51套参考答案1.程序填空题(1) k (2) len (3)ss[i][j]2.程序改错题(1) result*=n—…(2) return result;3.程序设计题void fun( char s[],int c){int j=0,n;char *p=s;while(*p!='\0'){ if(*p!=c)s[j++]=*p;p++;}s[j]='\0';}第52套参考答案1.程序填空题(1) x (2) n (3) t2.程序改错题(1) d=1; (2) s=0; (3) d=d/10;3.程序设计题double fun(double x[9]){int i;double s=0.0,t;for(i=0;i<8;i++){t=sqrt((x[i]+x[i+1])/2);s=s+t;}return s;}第53套参考答案1.程序填空题(1) STU (2) std[i].num (3) std[i]2.程序改错题(1) if(*r==*p) {r++; p++;} (2) if(*r==‟\0‟)3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i] % 2==1)t[j++]=s[i];t[j]=0;}第54套参考答案1.程序填空题(1) std[i].year (2) std[i] (3) n2.程序改错题(1) IsPrime(int n) (2) if(!(n%i))3.程序设计题fun(STU a[], STU *s){int i;*s=a[0];for(i=1;i<N;i++)if(a[i].s>s->s)*s=a[i];}第55套参考答案1.程序填空题(1) STU (2) score[i] (3) &std2.程序改错题(1) if(k>1)3.程序设计题void fun(int a[ ][N], int n){int i,j;for(i=0;i<N;i++)for(j=0;j<i;j++)a[i][j]=a[i][j]*n;}第56套参考答案1.程序填空题(1) std[] (2) PERSON (3) std2.程序改错题(1) int k, q, i; (2) pt[i]=str[k][i];3.程序设计题void fun (int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;}第57套参考答案1.程序填空题(1) std[0] (2) std[i].age (3) 2.程序改错题(1) void fun(int *a, int *b) (2) t=*b;*b=*a;*a=t;3.程序设计题void fun(int tt[M][N],int pp[N]){int i,j,max;for(i=0;i<N;i++){max=tt[0][i];for(j=0;j<M;j++)if(tt[j][i]>max)max=tt[j][i];pp[i]=max;}pp[i]=0;}第58套参考答案1.程序填空题(1) a[i] (2) m%10 (3) m/102.程序改错题(1) b[i] = a[i][0]; (2) for (j=1; j<N; j++) (3) if ( b[i] > a[i][j] ) 3.程序设计题double fun(double a[ ] , int n){int i,j;double min,max,sum;min=max=a[0];sum=a[0];for(i=1;i<n;i++){sum=sum+a[i];if(a[i]>max) max=a[i];if(a[i]<min) min=a[i];}sum=sum-max-min;return sum/(n-2);}第59套参考答案1.程序填空题(1) i+1 (2) k=j (3) t2.程序改错题(1) void fun(char *str, char ch ) (2) if ( *str != ch ) (3) str[1] = '\0';3.程序设计题void fun(char*s){int i,n;char t;n=strlen(s);for(i=0;i<n/2;i++){t=s[i];s[i]=s[n-i-1];s[n-i-1]=t;}}第60套参考答案1.程序填空题(1) *n (2) next (3) head2.程序改错题(1) a=NULL; (2) if(*r==*p)3.程序设计题void fun(int a, int b, long *c){*c=(a%10)*1000+(a/10)*10+b%10+(b/10)*100;}第61套参考答案1.程序填空题(1) ss[i] (2) j+n (3) 12.程序改错题(1) if (*p==' ') (2) *(p-1)=toupper( *(p-1));3.程序设计题void fun(char *s,int num){int i,j,k;char *p=s;char ch;for(i=1;i<num-1;i++){ch=p[i];k=i;for(j=i+1;j<num-1;j++)if(p[j]>p[k])k=j;p[i]=p[k];p[k]=ch;}第62套参考答案1.程序填空题(1) [N] (2)len (3) *n=len2.程序改错题(1) t+=1.0/i; (2) return t;3.程序设计题int fun(char *str, char *substr){char *r,*p;int n=0;while(*str){p=str;r=substr;while(*r){ if(*p==*r) {p++; r++;}elsebreak;}if(*r=='\0') n++;str++;}return n;}另一种解法int fun(char *str, char *substr){int i, j=0;for(i=0;str[i+1]!=‟\0‟;i++)if(str[i]==substr[0] && str[i+1]==substr[1]) j++;return j;}第63套参考答案1.程序填空题(1) && (2) …A‟(3) ch2.程序改错题(1) void fun(int a[]) //答案是void fun(int *a) (2) a[j]=a[j-1];3.程序设计题int fun(int n){int i,j,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;return s;}第64套参考答案1.程序填空题(1)1.0 (2) -1 (3)t2.程序改错题(1) for(i=1;i<=3;i++) (2) if(k>=0 && k<=6)3.程序设计题double fun(int n){int i,p=1;double s=1.0,t=1.0;for(i=1;i<=n;i++){p=p*i;t=1.0/p;s=s+t;}return s;}第65套参考答案1.程序填空题(1)x (2)n (3)fabs(t)2.程序改错题(1) for(i=1;i<=y;i++) (2) t=t%1000;3.程序设计题double fun(double x){double s=1.0,t;int n=1;t=0.5*x;s=s+t;do{n++;t*=(0.5-n+1)*x/n;s=s+t;}while(fabs(t)>=1e-6);return s;}第66套参考答案1.程序填空题(1) 1.0 (2) 1 (3) i2.程序改错题(1) k=i; (2) b=k%10;3.程序设计题double fun(double x[10]){int i;double s=0.0, ave;for(i=0;i<10;i++)s=s+x[i];ave=s/10;s=0.0;for(i=0;i<10;i++)s=s+pow((x[i]-ave),2); //平方等于两个相乘,0.5次方等于开平方s=s/10;s=pow(s,0.5);return s;}第67套参考答案1.程序填空题(1) tt (2) tt.score[i] (3) std2.程序改错题(1) void fun(int *a,int n) //去掉分号(2) m=i;3.程序设计题unsigned fun(unsigned w){unsigned i;int s=1,sum=0,t;do{t=w%10;t=t*s;sum=sum+t;s=s*10;w=w/10;}while(w>=10);return sum;} //另一种思路是求w的位数,对n-1位取余数第68套参考答案1.程序填空题(1)q (2) next (3) next2.程序改错题(1) p=j; (2) p=i;3.程序设计题void fun ( int m, int *a , int *n ){int i,j=0;for(i=1;i<=m;i++)if((i%7==0)||(i%11==0))a[j++]=i;*n=j;}第69套参考答案1.程序填空题(1) N (2) i (3) -12.程序改错题(1) a2=k/10; (2)return i;3.程序设计题void fun( char *a ){char *p;int i=0,j=0;p=a;while(*p){i++;p++;}p--;while(*p=='*'){ p--;j++;}a[i-j]=0;}第70套参考答案1.程序填空题(1) next (2) t->data (3) t2.程序改错题(1) void fun (char *a) //丢* (2) printf("%c", *a) ; //丢,3.程序设计题char *fun ( char *s, char *t){int i,j;for(i=0;s[i]!='\0';i++);for(j=0;t[j]!='\0';j++);if(i>=j) return s;else return t;}第71套参考答案1.程序填空题(1) “r”(2) fs (3) ft2.程序改错题(1) if (d%2==0) (2) s /= 10;3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if((i%2==0) &&(s[i]%2==0))t[j++]=s[i];t[j]='\0';}第72套参考答案1.程序填空题(1) a (2) (3) score[i]2.程序改错题(1) s[j++]=s[i]; (2) s[j]=0;3.程序设计题void fun( char *a ){int i,j,n=0;char t;char*p=a;for(i=0;p[i]!='\0';i++)n++;while(*p=='*'){t=p[0];for(i=1;i<n;i++)p[i-1]=p[i];p[i-1]=t;}}另一种思路void fun( char *a ){int i=0,n=0;char*p=a;while(*p=='*'){ n++; p++;} //统计*的个数while(*p){ a[i]=*p ; i++ ; p++} //将前导*后的字符传递给awhile(n!=0) //后面补*{a[i]=‟*‟;i++;n--;}a[i]=‟\0‟}第73套参考答案1.程序填空题(1) N (2) substr (3) 02.程序改错题(1) fun(int x, int y, int z ) (2) return j;3.程序设计题void fun( char *a, int n,int h,int e ){char *p;int i;for(i=0;i<(n-h-e);i++)a[i]=a[h+i];a[i]='\0';}第74套参考答案1.程序填空题(1) data (2) next (3) head2.程序改错题(1) while ( *r ) (2) *a = *r; a++; r++; //r++丢分号3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=1;s[i]!='\0';i+=2)t[j++]=s[i];t[j]=0;} //可以先求一下字符串的长度strlen第75套参考答案1.程序填空题(1) struct student (2) n-1 (3) a[i].name, a[j].name2.程序改错题(1) q=p+i; (2) while(q>p )3.程序设计题int fun( STREC *a,STREC *b,int l, int h ){int i,j=0;for(i=0;i<N;i++)if(a[i].s>=l && a[i].s<=h)b[j++]=a[i];return j;}第76套参考答案1.程序填空题(1) b->sno (2) ->name (3) &t2.程序改错题(1) double fun(double a, double x0) (2) if( fabs(x1-x0)>=0.00001 ) 3.程序设计题double fun( STREC *a, STREC *b, int *n ){int i,j=0;double ave,sum=0.0;for(i=0;i<N;i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s>=ave)b[j++]=a[i];*n=j;return ave;}第77套参考答案1.程序填空题(1) STYPE (2)FILE (3) fp2.程序改错题(1) for( i=0; i<sl; i++) (2) t[s1*2] = '\0';3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*100+b%10;}第78套参考答案1.程序填空题(1) fp (2) == (3) fp2.程序改错题(1) n=strlen(aa); (2) ch=aa[i];3.程序设计题double fun( STREC *h ){STREC *p=h->next;double max=p->s;while(p!=NULL){if(p->s>max)max=p->s;p=p->next;}return max;}第79套参考答案1.程序填空题(有问题)2.程序改错题(有问题)3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*1000+(b%10)*10;}第80套参考答案1.程序填空题(1) FILE * (2) fclose(fp) (3) fp2.程序改错题(1) t=calloc(m,sizeof(STU)); (2) t[k]=b[j];3.程序设计题int fun(int a[], int n){int i, j=1;for(i=1;i<n;i++)if(a[i-1]!=a[i])a[j++]=a[i];return j;}第81套参考答案1.程序填空题(1) [M] (2) N (3) 02.程序改错题(1) t=1.0; (2) return (2*s)3.程序设计题void fun( char *a, int n ){char *p=a;char *q=a;int i=0,j=0;while(*p=='*'){p++; i++;}if(i>n){while(*q){a[j++]=*(q+i-n); q++;}a[j]='\0';}}第82套参考答案1.程序填空题(1) fp (2) fclose(fp) (3) fname2.程序改错题(1) for ( i=j+1; i<n ; i++ ) (2) p=i;3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;}第83套参考答案1.程序填空题(1) NULL (2)n (3) head, ch2.程序改错题(1) for (i = 0,t = 0; p[i] ; i++) (2) c[t]='\0';3.程序设计题void fun ( char *ss ){int i;for(i=1;ss[i]!='\0';i+=2)if(ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第84套参考答案1.程序填空题(1) struct student * (2) a->score[i] (3) a2.程序改错题(1) char *fun(char (*sq)[M]) (2) return sp;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+a%10+(b/10)*10+(b%10)*1000;}第85套参考答案1.程序填空题(1) 0 (2) && (3) 12.程序改错题(1) t=t-1.0/i; (2) return t;3.程序设计题void fun (char *str){char *p=str;int i=0;while(*p!='\0'){ if(*p!=' ')str[i++]=*p;p++;}str[i]='\0';}第86套参考答案1.程序填空题(1) j=2 (2) i (3)j2.程序改错题(1)j=0 (2) if(sum%4==2)3.程序设计题double fun(int n){int i;double s=0,t=0;for(i=1;i<=n;i++){t=1.0/(2*i-1)-1.0/(2*i);s=s+t;}return s;第87套参考答案1.程序填空题(1) 0 (2) t (3) i+t2.程序改错题(1) b[i] = 0; (2) b[a[i] - 'a']++; (3) if (b[max] < b[i]) 3.程序设计题(答案评分有问题)long fun( char *s ){int n, i, j;long m=0;n=strlen(s);for(j=0;j<n;j++){i=s[j]-48;m=m*10+i;}return m;}另一种解法int i,sum=0,len;len=strlen(s);for(i=0;i<len;i++){sum=sum*10+*s-48;s++;}return sum;第88套参考答案1.程序填空题(1) “r”(2) > (3) fwrite2.程序改错题(1) p=s (2) while(*p++);3.程序设计题void fun(int *a, int *b){int i,j;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N; i++){j=a[i]/10;if(j>=0 && j<=9)b[j]++;elseb[10]++;}}第89套参考答案1.程序填空题(1) b[k] (2) N/2 (3) <2.程序改错题(1) int t[N] ,i, num=0; (2) t[num++]=b[i]; (3) for(i=0; i<num; i++) 3.程序设计题int fun(char *s){int n=0;while(*s){if(*s>='0' && *s<='9')n++;s++;}return n;}第90套参考答案1.程序填空题(1) j (2) k (3) p2.程序改错题(1) while ( i < j ) (2) if ( *a )3.程序设计题void fun(char *s, char t[]){int len,i,j=0;len=strlen(s);for(i=0;i<len;i++)if(i%2==0 && s[i]%2==1);elset[j++]=s[i];t[j]=0;}第91套参考答案1.程序填空题(1) i%5 (2)\n (3) a[i]2.程序改错题(1) return t; (2) for(i=0;i<N;i++) t[i]=x[i]; (3) x[i+1]=findmid(a,b,c);3.程序设计题int fun( int *s, int x){int i;for(i=0;i<N;i++)if(s[i]==x)break;if(i==15)return -1;elsereturn i;}第92套参考答案1.程序填空题(1) pb (2) p->data (3) p->next2.程序改错题int i, one=0, zero=0 ; (2) switch( s[i] ) (3) case 0 : zero++; break;3.程序设计题void fun( char *a , char *s){while(*s){*a=*s;a++;s++;}*a=0;}第93套参考答案1.程序填空题(1) [N] (2) i (3) i+12.程序改错题(1) void fun(int m,int k) //去掉分号(2) aa[i]=m%k; (3) printf("%d",aa[i-1]);3.程序设计题char *fun(char (*a)[81], int num, char *max){int i,len,m;max=a[0];for(i=0;i<num;i++){if(strlen(max)<strlen(a[i]))max=a[i];}return max;}第94套参考答案1.程序填空题(1) a[0][i] (2) < (3) x, y2.程序改错题(1) void fun(int *x,int *y) (2) t=*x;*x=*y;*y=t;3.程序设计题int fun(int lim, int aa[MAX]){int i,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0) break;。
全国计算机等级二级考试C语言试题及答案
一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中带有箭头的线段表示的是CA)图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则的是 CA)抽象B)模块化C)自底向上D)信息隐蔽(3)下列选项中,不属于模块间耦合的是 CA)数据耦合B)标记耦合C)异构耦合D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是DA)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(5)算法的时间复杂度是指CA)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是BA)堆排序B)直接插入排序C)快速排序D)B)和C) (7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是BA)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面的设计内容,它们是AA)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计(9)关系表中的每一横行称为一个AA)元组B)字段C)属性D)码(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为 CA)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下不正确的叙述是DA)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言用户标识符的是BA)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,CaseD)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是BA)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 (14)在C语言中,运算对象必须是整型数的运算符是AA)% B)\ C)%和\D)**(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是AA)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1; (16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是DA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是BA)kk>=′A′&&kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isal pha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为"真"的表达式是BA)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是BA)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)(20)以下不正确的定义语句是BA)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\x10′, ′xa′, ′\x8′};(21)下列程序执行后的输出结果是Bmain(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1;printf("%d\n",a[1][2];)A)3 B)6 C)9 D)随机数(22)设有以下程序段Bint x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的D)程序段执行无限次(23)下面程序段的运行结果是Cchar *s="abcde";s+=2;printf("%d",s);A)cde B)字符′c′ C)字符′c′的地址D)无确定的输出结果(24)阅读下列程序,则执行后的结果为A#include "stdio.h"main(){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}A)3e,6 B)62,5 C)56,5 D)3E,6(25)下面判断正确的是CA)char *a="china";等价于char *a;*a="china"; B)char str[5]={"china"};等价于char str[]={"china"};C)char *s="china";等价于char *s;s="china"; D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是DA)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是DA)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)有以下程序(29)#include <stdio.h>#define N 5#define M N+1#define f(x) (x*M)main(){ int i1,i2;i1=f(2);i2=f(1+1);printf("%d %d\n",i1,i2);}程序的运行结果是BA)12 12 B)11 7 C)11 11 D)12 7(29)若有以下说明和定义union dt{ int a; char b; double c;}data;以下叙述中错误的是DA)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5. D)data可以作为函数的实参(30)有以下程序#include<stdio.h>main(){FILE *fp;int k,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是DA)1 2 B)1 4 C)123 4 D)123 456(31)若已定义int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中则对a数组元素不正确的引用是DA)a[p-a] B)*(&a[i]) C)p[i] D)a[10](32)有以下程序#include <stdio.h>{ int i,j,t;i=n1; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");}程序的运行结果是CA) B) C) D)(33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为A#include <stdio.h>#include <ctype.h>#include <string.h>int fun (char *str){ int i,j=0;for(i=0;str[i]!=′ \0′;i++)if(str[i]!=′ ′)str[j++]=str[i];str[j]= ′\0′;}main(){char str[81];int n;printf("Input a string : ");gets(str);puts(str);fun(str);printf("%s\n",str);}A)asdafaaz67 B)asd af aa z67 C)asd D)z67(34)有以下程序int fun(int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf("%d",&x); x=fun(x);printf("%d\n",x)}执行程序时,给变量x输入10,程序的输出结果是AA)55 B)54 C)65 D)45(35)下面程序段中,输出*的个数是 Cchar *s="\ta\018bc";for(;*s!='\0';s++)printf("*");A)9 B)5 C)6 D)7(36)C语言结构体类型变量在程序运行期间BA)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B)所有的成员一直驻留在内存中C)只有最开始的成员驻留在内存中D)部分成员驻留在内存中(37)已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是CA)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项(38)设有以下语句char x=3,y=6,z;z=x^y<<2;则z的二进制值是BA) B) C) D)(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是AA)auto和register B)extern和register C)auto和static D)static和register (40)设有定义语句则以下叙述正确的是BA)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机二级C上机练习题汇总(三)第七套(1)填空题给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号、姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <stdlib.h>#define N 5typedef struct{ int num;char name[10];char tel[10];}STYPE;void check();/**********found**********/int fun(___1___*std){/**********found**********/___2___*fp; int i;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutput data to file !\n");for(i=0; i<N; i++)/**********found**********/fwrite( &std[i], sizeof(STYPE), 1, ___3___);fclose(fp);return (1);}main(){ STYPE s[10]={ {1,"aaaaa","111111"},{2,"bbbbb","222222"},{3,"ccccc","333333"},{4,"ddddd","444444"},{5,"eeeee","555555"}};int k;k=fun(s);if (k==1){ printf("Succeed!"); check(); }printf("Fail!");}void check(){ FILE *fp; int i;STYPE s[10];if((fp=fopen("myfile5.dat","rb"))==NULL){ printf("Fail !!\n"); exit(0); }printf("\nRead file and output to screen :\n");printf("\n num name tel\n");for(i=0; i<N; i++){ fread(&s[i],sizeof(STYPE),1, fp);printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);}fclose(fp);}第1 处:int fun(STYPE *std)第2 处: FILE *fp; int i;第3 处:fwrite(&std[i], sizeof(STYPE), 1, fp);(2)改错题给定程序modi.c中,已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。
下列程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。
n值通过形参传入。
例如,当n=10时,程序的输出结果应为:23.197745。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>#include <math.h>#include <windows.h>/************found************/fun (int n){ double sum,s0,s1,s2,s;int k;sum=1.0;if (n<=2) sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}/************found************/returnsum;}{ int n;system("cls");printf("Input N=");scanf("%d",&n);printf("%f\n",fun(n));}第1 处:fun (int n) 改为double fun( int n)第2 处:returnsum; 改为 return sum;(3)程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在h所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是60 69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。
主函数中将把60放在low中,把69放在heigh中。
注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>#define N 16typedef struct{ char num[10];int s;} STREC;int fun(STREC *a,STREC *b,int l,int h){ int i,j=0,k,f=0;for (i=0;i<N;i++)if ((a[i].s>=l) && (a[i].s<=h)){for (k=0;k<10;k++)b[j].num[k]=a[i].num[k];b[j].s=a[i].s;j++;f++;}return(f);}main(){ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA 08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",91 },{"GA017",64},{"GA018",64},{"GA016",72}};STREC h[N];FILE *out;int i,n,low,heigh,t;printf("Enter 2 interger number low & heigh:");scanf("%d%d",&low,&heigh);if (heigh<low) {t=heigh;heigh=low;low=t;}n=fun(s,h,low,heigh);printf("The student's data between %d--%d:\n",low,heigh);for(i=0;i<n;i++)printf("%s %4d\n",h[i].num,h[i].s);printf("\n");out=fopen("out18.dat","w");n=fun(s,h,80,98);fprintf(out,"%d\n",n);for(i=0;i<n;i++)fprintf(out,"%s %4d\n",h[i].num,h[i].s);fclose(out);}第八套(1)填空题给定程序的功能是:在x数组中放入n个采样值,计算并输出方差值。
N (XK-X')^2 N XKS = ∑─────,其中X' = ∑─K=1 N K=1 N例如n=8,输入:193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763时,结果应为:1.135907。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(double x[], int n){ int j; double xa=0.0, s;/************found************/for(j=0;j<___1___;j++)xa += x[j]/n;/************found************/s=___2___;for (j=0; j<n; j++ )/************found************/s+=(x[j]-xa)*(x[j]-xa)/___3___;return s;}main ( ){ double x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763};printf("%f\n", fun (x, 8));}第1 处:for (j=0; j<n; j++ )第2 处:s=0;第3 处:n;(2)改错题给定程序modi.c中函数fun的功能是:求两个形参的乘积和商数,并通过形参返回调用程序。
例如输入:61.82 和 12.65,输出为:c = 782.023000d = 4.886957。