把分数最低的学生数据放在h所指的数组中。

合集下载

全国计算机等级考试二级C语言上机考试题库及答案

全国计算机等级考试二级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中。

2022年湖南省常德市全国计算机等级考试C语言程序设计真题(含答案)

2022年湖南省常德市全国计算机等级考试C语言程序设计真题(含答案)

2022年湖南省常德市全国计算机等级考试C语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。

void delete(s,C)char s[],c;{int i,j;for(i=j=0;( );i++) if(s[i]!='c') s[j++]=s[i];s[j]="\0";}2. 性表的多种存储结构中,最简单的方法是【】。

3. 以下程序运行后的输出结果是【】。

#include <stdio.h>fun(int x){ if(x/2>0) fun(x/2);printf("%d",x);}main(){ fun(6); }4. 度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为______。

5. 以下程序运行后的输出结果是______。

main(){int a=1,b=2,c=3;if(c=A) printf("%d\n",C) ;else printf("%d\n",B) ;}6. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

请填空。

main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i<20;i++) scanf("%d", 【】);for(i=0;i<20;i++){ if(a[i]>0){count++;sum+= 【】;}}printf("sum=%d,count=%d\n",sum,count);}7. C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。

8. 函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。

C语言题库第8章 结构体和共同体

C语言题库第8章 结构体和共同体

第八章结构体和共同体一、单项选择1. 若有以下定义:struct link{int data;struct link *next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构,若指针p指向a,指针q指向c。

则能把c插入到a和b之间形成新的链表的语句是( C )2. 若有以下程序段:int a=1,b=2,c=3;struct dent {int n ; int *m ;} s[3] = {{101,&a},{102,&b},{103,&c}};struct dent *p=s ;则以下表达式中值为2的是( D )。

3. 下面程序的运行结果是( D )。

#iunclude<stdio.h>int main ( ) {struct complx {int x; int y ;}cnum[2]={1,3,2,7} ;printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x) ;return 0;}二、程序设计1. /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s 中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */#include <stdio.h>#define N 16typedef struct{ char num[10];int s ;}STREC;void fun (STREC a[]){/*********Begin*********//*********End**********/}int main (){FILE *wf,*in;STREC s[N]={{ "GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};int i;fun(s);printf("The data after sorted :\n");for (i=0; i<N; i++)printf("%s %4d\n",s[i].num,s[i].s);printf("\n");/******************************/in=fopen("in001.dat","r");i=0;while(!feof(in)){fscanf(in,"%s %d",s[i].num,&s[i].s);i++;}fun(s);wf=fopen("out.dat","w");for (i=0; i<N; i++)fprintf(wf,"%s %4d\n",s[i].num,s[i].s);fclose(wf);fclose(in);/*****************************/return 0;}【参考代码】int i,j;STREC t;for(i=0;i<N;i++)for(j=0;j<N-1-i;j++)if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}2. /*某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。

计算机二级题库填空题目

计算机二级题库填空题目

1、下列给定程序中,函数fun 的功能是:计算如下公式()()()12222213572462n n s n -⨯+=-+-⨯…-1直到函数值返回。

8、下列给定程序中,函数fun 的功能是:求ss 所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n 所指的变量中。

ss 所指字符串数组中共有M 个字符串,且串长小于N 。

9、下列给定程序中,函数fun 的功能是:将s 所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s 所指的字符串为"def35adh3kjsdf7",执行后结果为"defadhajsdf3537"。

10、下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。

函数fun 的功能是:把形参x 的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。

a 所则中2、3、、2、ss 函数N 个s 所最下标ss 找 2、3、5、4、N 矩矩阵1 2 3 4 5 6 7 8 9程序执行结果为0 0 1 0 0 4 0 0 719、程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。

函数fun 的功能是:将形参a 所指结构体变量中的数据赋给函数中的结构体变量b ,并修改b 中的学号和姓名,最后输出修改后的数据。

例如,a 所指变量中的学号、姓名和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,则修改后输出b 中的数据应为:10002、"LiSi"、95、80、88。

20、下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt 中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。

文件的读写分别由函数ReadText 和WriteText 实现。

电力拖动自动控制系统-运动控制系统(_阮毅_陈伯时)课后思考题答案 (2)

电力拖动自动控制系统-运动控制系统(_阮毅_陈伯时)课后思考题答案 (2)
注意:这一段是程序题答案
int i,j;
for(i=0;p1[i];i++); for(j=0;p2[j];j++) p1[i++]=p2[j];
p1[i]='\0'; 注意:这三个是填空题 答案
if(t%2==0) x=10*x+t; n=n/10;
注意这两个是改成题答案 *t = 0; if (d%2 != 0) 2. 请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值, 直到|Sn-S(n-1)|<0.000001为止。Sn=1+0.5x+0.5(0.51)/2!x(2)+...+ 0.5(0.5-1)(0.5-2) .....(0.5-n+1)/n!x(n) 输入0.21后,则输出为s=1.100000。 double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do {s0=s1; sum+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t;n++;}while(fabs(s1-s0)>1e-6); return sum; t = x; t *= (-1.0)*x/n; while (fabs(t) >= 1e-6);
一、可以作为填空题或简答题的 2-1 简述直流电动机的调速方法。 答:直流调速系统常以(调压调 速)为主,必要时辅以(弱磁调速) ,以(扩大调速范围) , 实现 (额定转速以上调速) 。
2-2 直流调压调速主要方案有(G-M 调速系统,V-M 调速系统,直流 PWM 调速系统) 。 2-3 V-M 调速系统的电流脉动和断续是如何形成的?如何抑制电流脉 动? 11-12 答:整流器输出电压大于反电动势时,电感储能,电流上升,整 流器输出电压小于反电动势 时,电感放能,电流下降。整流器输出电 压为脉动电压,时而大于反电动势时而小于,从而导 致了电流脉动。 当电感较小或电动机轻载时,电流上升阶段电感储能不够大,从而导致 当电流下降时, 电感已放能完毕、电流已衰减至零,而下一个相却尚 未触发,于是形成电流断续。 2-4 看 P14 图简述 V-M 调速系统的最大失控时间。 14 答:t1 时刻某一对晶闸管被触发导通,触发延迟角为α1,在 t2>t1 时刻,控制电压发生变 化,但此时晶闸管已导通,故控制电压 的变化对它已不起作用,只有等到下一个自然换向点 t3 时刻到来时, 控制电压才能将正在承受正电压的另一对晶闸管在触发延迟角α2 后导 通。t3-t2 即为失控时间,最大失控时间即为考虑 t2=t1 时的失控时 间。 2-5 简述 V-M 调速系统存在的问题。16 答:整流器晶闸管的单 向导电性导致的电动机的不可逆行性。 整流器晶闸管对过电压过电流 的敏感性导致的电动机的运行不可靠性。 整流器晶闸管基于对其门极 的移相触发控制的可控性导致的低功率因数性。 2-6 简述不可逆 PWM 变换器 (无制动电流通路与有制动电流通路) 各个工作状态下的导通 器件和 电流通路。17-18 2-7 调速时一般以电动机的(额定转速)作 为最高转速。 2-8 (调速范围)和(静差率)合称调速系统的(稳态 性能指标) 。 2-8 一个调速系统的调速范围,是指(在最低转速时还 能满足所需静差率的转速可调范围) 。 2-9 简述转速反馈控制的直流 调速系统的静特性本质。 答:在闭环系统中,每增加(或减少)一点 负载,就相应地提高(或降低)一点电枢电压, 使电动机在新的机械 特性下工作。因此闭环系统的静特性本质上就是无数开环机械特性上各 取 一个相应的工作点连接而成的。 2-10 简述比例反馈控制的规律。 答:比例控制的反馈控制系统是(被调量有静差)的控制系统; 反馈 控制系统的作用是(抵抗前向通道的扰动,服从给定) ; 反馈1.编写 一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数 strcat),即把p2所指的字符串连接到p1所指的字符串后。 实现两个字符串连接

计算机二级操作题整理

计算机二级操作题整理

计算机二级操作题整理(总3页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除2一.求最大最小值问题 1.找出2×M 整型二维数组中最大元素的值 int fun (int a[][M]) {int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<M;j++) if(max<a[i][j]) max=a[i][j]; return max ;} 11.把分数最高的学生数据放到B 所指的数组中 int fun( STREC *a, STREC *b ) { int i,j=0,max=a[0].s; for(i=0;i<N;i++) if(max<a[i].s) max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s) b[j++]=a[i]; return j; } 20.(1)void fun(long s ,long *t) (2)sl =sl*10; 把分数最低的学生数据放入B 所指的数组中,返回分数最低人数 int fun( STREC *a, STREC *b ) {int i,j=0,min=a[0].s; for(i=0;i<N;i++) if(min>a[i].s) min=a[i].s; for(i=0;i<N;i++) if(min==a[i].s) b[j++]=a[i]; return j; } 26.按分数的高低排列学生的记录,高分在前 void fun( STREC a[] ) {int i,j; STREC t; for(i=1;i<N;i++) for(j=0;j<N-1;j++) if(a[j].s<a[j+1].s) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } 30.找出学生最高分数,并由函数值返回 double fun( STREC *h ) {double max=h->s; while(h!=NULL) {if(max<h->s) max=h->s; h=h->next; } return max;} 31.查找一维数组中的最大值及其下标 void fun(int a[],int n, int *max, int *d) { int i; *max=a[0]; *d=0; for(i=0;i<n;i++) if(*max<a[i]) {*max=a[i];*d=i;}} 57.找出成绩最高的学生记录 fun(STU a[], STU *s) {int i;*s=a[0]; for(i=0;i<N;i++) if(s->s<a[i].s) *s=a[i];} 77.找出成绩最低的学生记录 fun(STU a[], STU *s) {int i; *s=a[0]; for(i=0;i<N;i++) if(s->s>a[i].s) *s=a[i];} 60.1)void fun(int *a ,int *b) (2)t =*b ; *b=*a; *a=t; 各列的最大值依次放入pp 数组中 Void fun(int tt[M][N],int pp[N]) { int i,j,max; for(j=0;j<N;j++) {max=tt[0][j]; for(i=0;i<M;i++) if(tt[i][j]>max) max=tt[i][j]; pp[j]=max; }} 64.要求对长度为7的字符串,除首、尾字符外,将其余5个字符按ASC Ⅱ码降序排列 void fun(char *s,int num) { char ch ; int i,j ; for(i=1;i<6;i++) for(j=i+1;j<6;j++) {if(*(s+i)<*(s+j)) {ch=*(s+j); *(s+j)=*(s+i); *(s+i)=ch;}}} 92.1)t ,s(2)s[i](3)0或'\0' (1)if(i%k ==0) (2)if(k ==i) 能整除x 且不是偶数的所有整数,并按从小到大顺序排列 void fun (int x, int pp[], int *n) { int i,j=0; for(i=1;i<=x;i=i+2) if(x%i==0) pp[j++]=i; *n=j; } 94(1)n++(2)0(3)s++ (1)t +=s[k];(2)*aver =ave ; 求数组中的最大元素在数组中的下标 int fun(int *s,int t,int *k) { int i; *k=0; for(i=0;i<t;i++) if(s[*k]<s[i]) *k=i; return s[*k]; } 105.将一组得分中去掉一个最高分,去掉一个最低分,求平均值 double fun(double a[ ] , int n){ double sum=0,max,min;int i; max=min=a[0]; for(i=0;i<n;i++) { sum=sum+a[i]; if(max<a[i])max=a[i]; if(min>a[i])min=a[i]; } sum=sum-max-min; return(sum/(n-2));} 108.在形参所指的四个整数中找出最大值和最小值 {int max,min; max=min=*a; if(max<*b)max=*b; if(min>*b)min=*b; if(max<*c)max=*c; if(min>*c)min=*c; if(max<*d)max=*d; if(min>*d)min=*d; *d=min;*a=max;} 二.素数问题 8(1) M (2) < (3) k 将1~m 之间的非素数存入数组中, void fun( int m, int *k, int xx[] ) {in t i,j,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;} 66.计算出给定整数N 的所有因子之和 int fun(int n) { int s=0,i; for(i=2;i<=n-1;i++) if(n%i==0)s+=i; return s;} 74.计算并输出3-n 之间所有素数的平方根之和 double fun(int n) { int m,k,i; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) s+=sqrt(m); } return s;} 83.(1)a[0][i](2)<(3)x ,y 求出小于或等于lim 的全部素数 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; if(j>=i)aa[k++]=i ; } Return k;} 93.找大于m 的素数,循环k 次,即找出紧靠m 的k 个素数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(j>=i) xx[n++]=i;}} 三.按行按列顺序存储 34将二维数组中的数据按列的顺序依次放入一维数组中 void fun(int (*s)[10],int *b,int *n,int mm,int nn) {int i,j; for(j=0;j<nn;j++) for(i=0;i<mm;i++) {b[*n]=*(*(s+i)+j ); *n=*n+1; }} 36将字符串数组中的M 个字符串,按顺序存入一个新的字符串 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'; } 391)FILE*(2)fp (3)ch (1)s[j++]=s[i]; (2)s[j]= '\0'; 按列的顺序依次放到一个字符串中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';} 87.将二维数组s 中的数据按行的顺序依次放到一维数组b 中 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 ;} 四.字符串问题 5.(1)0 (2) 10*x (3)n/10 不使用字符串函数实现字符串连接操作 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++]=p2[j]; p1[i]='\0';} 9(1)j ++(2)s[i]=t1[i](3) j 从SS 字符串中查找指定字符的个数 int fun(char *ss, char c) {int i=0; for(;*ss!='\0';ss++) if(*ss==c) i++; return i;} 13(1) 1(2) s[k](3) c (1)long s =0, t =0;(2)t=t/10; 统计在tt 所指字符串中'a'~'z'26个小写母各自出现的次数 void fun(char *tt, int pp[]) {int i; for(i=0;i<26;i++) pp[i]=0; for(;*tt!='\0';tt ++) if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; } 15.(1)next(2) t ->data(3) t 比较两个字符串的长度, 函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串 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 t; else return s;} 47.将字符串转成相应的整数 long fun ( char *p) {long n=0;int flag=1; if(*p=='-') {p++;flag= -1;} else if(*p=='+') p++; while(*p!='\0') {n=n*10+*p-'0'; p++; } return n*flag;} 104.要把一个数字字符串转为相应面值的长整形数字 long fun( char *s ) { int i,sum=0,len; len=strlen(s); for(i=0;i<len;i++) {sum=sum*10+*s-48; s++; } return sum;} 62.将字符串中的内容逆置 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--;}} 63.删除字符串中指定字符只需把未删除字符保留 void fun( char s[],int c) { int i=0; char *p;p=s; while(*p) { if(*p!=c) { s[i]=*p; i++; } p++; } s[i]='\0';} 37 1)t=i (2) i (3) '\0'或0 (1)while(fabs(t)>=nu m) (2)t =s/n ; 删除字符串中指定字符 void fun (char a[], char b[], int n) {int i,k=0; for(i=0;a[i]!='\0';i++) if(i!=n) b[k++]=a[i]; b[k]='\0'; } 65.返回子字符串在主字符串中出现的次数 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]==su bstr[1]) j++; return j; } 76.统计一行字符串中单词的个数3int fun(char *s) { int i,j=0; for(i=0;s[i]!='\0';i++) if(s[i]!=''&&(s[i +1]==' '||s[i+1]=='\0')) j++; return j; } 84.1)[N](2)i(3)i +1 (1)void fun(int m, int k) (2)aa[i]=m%k ; (3)printf("%d", aa[i -1]); 从传入的num 字符中找出最长的一个字符串 char *fun(char (*a)[81], int num, char *max) { int i=0; max=a[0]; for(i=0;i<num;i++) if(strlen(max)<st rlen(a[i])) max=a[i]; return max; } 85. 要求删除所有空格 void fun (char *str) { int i=0; char *p=str; while(*p) { if(*p!=' ') {str[i]=*p; i++; } p++; } str[i]='\0'; } 86判断一个字符串是否是回文 int fun(char *str) { int i,n=0,fg=1; char *p=str; while (*p) n++; p++; } for(i=0;i<n/2;i++) if(str[i]==str[n-1-i]) ; else {fg=0;break; } return fg;} 101. 统计S 所指字符串中数字字符的个数 int fun(char *s) {int n=0;char *p; for(p=s;*p!='\0';p++) if((*p>='0')&&(*p<='9')) n++;return n;} 103.将s 所指的字符串存入a 所指的字符串中 void fun( char *a , char *s){ while(*s!='\0') {*a=*s;a++;s++;} *a='\0';} 106. 统计a 和C字符个数 {int i=0,j=0; *a=0;*c=0; for(i=0;i<M;i++) {for(j=0;j<M;j++) {if(t[i][j]=='A')(*a)++; if(t[i][j]=='C') (*c)++;}} 五.求平均分 6求出该学生平均分,并放入记录的ave 成员中 void fun(STREC *a) {int i; a->ave=0.0; for(i=0;i<N;i++) a->ave=a->ave+a->s[i]; a->ave/=N; } 7 求出平均分,并由函数值返回 double fun( STREC *h ) {double ave=0.0; STREC *p=h->next; while(p!=NULL) { ave=ave+p->s; p=p->next; } return ave/N;} 10.(1)x (2)p (3)s 1)long k =1 计算N 门课程的平均分,结果作为函数值返回 float fun ( float *a , int n ) {int i; float av=0.0; for(i=0;i<n;i++) av=av+a[i]; return(av/n); } 27.将大于等于平均分的学生存入b 所指存储单元中 double fun( STREC *a, STREC *b, int *n ) { int i;double av=0.0; *n=0; for(i=0;i<N;i++) av=av+a[i].s; av=av/N; for(i=0;i<N;i++) if(av<=a[i].s) {b[*n]=a[i];*n=*n +1;} return av;} 49.(1) a[] (2) 2 (3) i +1 低于平均值的学生记录存入结构体b 中,返回平均值 double fun( STREC *a, STREC *b, int *n ) { int i,j=0; double av=0.0; for(i=0;i<N;i++) av=av+a[i].s;av=av/N; for(i=0;i<N;i++) if(a[i].s<av) b[j++]=a[i];*n=j; return av; } 70 相邻两个元素之平均值的平方根之和 double fun(double x[9]) {double sum=0.0; int i,j=1; for(i=0;i<9;i++) if(j<=8) {sum+=sqrt((x[i]+x[i+1])/2.0);j++; }return sum; } 79.计算二维数组周边元素的平均值 double fun (int w[][N]) { int i,j,k=0; double av=0.0; for(i=0;i<N;i++) for(j=0;j<N;j++) if(i==0||i==N-1||j==0||j==N-1){av=av+w[i][j]; k++;} Return av/k; } 80.计算二维数组周边元素之和 int fun( int a [M][N]) {int i,j,sum=0; for(i=0;i<M;i++) for(j=0;j<N;j++) if(i==0||i==M-1||j==0||j==N-1)sum=sum+a[i][j]; return sum;} 91.(1)j (2)0 (3)i ++ 将低于平均分人数作为函数值返回,则将此分数放入below 数组中 int fun(int score[],int m, int below[]) { int i,j=0; float av=0.0; for(i=0;i<m;i++) av=av+score[i]/m; for(i=0;i<m;i++) if(score[i]<av) below[j++]=score[i]; return j } 六.矩阵 33.把矩阵A 加上A 的转置,存放在矩阵B 中*/ 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];} 82.(1)N 或20(2)break(3)n 实现矩阵转置 void fun (int array[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) {t=array[i][j]; array[i][j]=array [j][i]; array[j][i]=t; }} 七.根据公式求值 2.根据公式求∏的值double fun ( double eps) { double s=1.0,s1=1.0; int n=1; while(s1>=eps) {s1=s1*n/(2*n+1); s=s+s1; n++;} return 2*s;} 21.根据公式求s 的值s double fun( int m ) { int i; double s=0.0; for(i=1;i<=m;i++) s=s+log(i); return sqrt(s); } 40(1) '\0' (2) 0 (3) c 根据公式求S 的值 float fun(int n) {int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i;s=s+1.0/s 1; } return s; } 67计算s +=1.0/t ,t 的阶乘 double fun(int n) {double t,sn=1.0; int i,j; for(i=1;i<=n;i++) { t=1.0; for(j=1;j<=i;j++) t*=j; sn+=1.0/t; } return sn;} 68.230.5(0.51)0.5(0.51)(0.52)0.5(0.51)(0.52)(0.51)10.52!3!!n n n S x x x x n ------+=+++++ double fun(double x){double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;int n=1; do{s0=s1;sum+=s0;t*=n; p*=(0.5-n+1)*x; s1=p/t;n++;}while(fabs(s1-s0)>=1e-6); return sum;} 69求10个数的方差 double fun(double x[10]) { double x1=0.0,s=0.0; int i; for(i=0;i<10;i++) x1=x1+x[i];x1=x1/10; for(i=0;i<10;i++) s=s+(x[i]-x1)*(x[i]-x1); Return sqrt(s/10);} 71.计算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n ) double fun(int n) { int i; double s=0.0; for(i=1;i<=n;i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); return s; } 72.求计算并输出多项式的值,11111212312350S =++++⨯⨯⨯⨯⨯⨯double fun(int n) {double sum=0,tmp=1; int i; for(i=1;i<=n;i++) {tmp=tmp*i;sum+=1.0/tmp;} return sum;} 75求下列公式的值 S=1+(1+20.5)+(1+20.5+30.5) double fun(int n) for(i=1;i<=n;i++) {s1=s1+pow(i,0.5); s=s+s1;}return s;} 95.(1)*s(2)s++(3)n 求下列公式中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, int n) { float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p;} 97. 计算并输出下列多项式的值,循环的通项为1/n(n+1) double fun(int n) {int i;double s=0.0; for(i=1;i<=n;i++) s=s+1.0/(i*(i+1));return s;} 98.计算下列级数和 double fun(double x, intn) { int i; double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i; s=s+pow(x,i)/s1; } return s ;} 八.奇数偶数整除问题 3.要求找出能被7或11整除,但不能同时被7和11整除的所有整数 void fun (int *a, int *n) { int i,j=0; for(i=1;i<=1000;i++) if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; } 17 .(1) "r"(2) fs(3) ft 删除除了下标为偶数同时ASCII 码值也为偶数的字符 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';} 23删除字符串中下标为偶数的字符,将剩余字符存入t 所指字符串中 void fun(char *s, chart[]) {int i,j=0,k=strlen(s); for(i=1;i<k;i=i+2) t[j++]=s[i]; t[j]='\0';} 28.求出1到m(含m)之内能被7或11整除的所有整数放在数组a 中 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; }32 将下标为奇数同时ASCII 码值为奇数的字符放入数组t 中,其余删除。

2023年全国计算机二级C考试题库程序设计部分

2023年全国计算机二级C考试题库程序设计部分

1、找出2xM整型二维数组中最大元素的值,并将此值返回调用函数。

int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}2、根据以下公式求π值。

double fun ( double eps){ double s=0.0,s1=1.0;int n=0;while(s1>=eps){ s=s+s1;s1=s1*n/(2*n+1);n++;}return 2*s;}3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

void fun (int *a, int *n){ int i,j=0; for(i=1;i<=1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}4、删除字符串中所有*号。

void fun( char *a ){ int i,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];a[j]='\0';}5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。

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++]=p2[j];p1[i]='\0';}6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。

2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)

2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)

2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. 下列叙述中,不正确的是A.数据库技术的根本目标是要解决数据共享的问题B.数据库系统中,数据的物理结构必须与逻辑结构一致C.数据库设计是指设计一个能满足用户要求,性能良好的数据库D.数据库系统是一个独立的系统,但是需要操作系统的支持2.由两个栈共享一个向量空间的好处是______。

A.减少存取时间,降低下溢发生的机率B.节省存储空间,降低上溢发生的机率C.减少存取时间,降低上溢发生的机率D.节省存储空间,降低下溢发生的机率3.已定义以下函数“int fun(int *p) {return *p;}”,fun函数的返回值是()。

A.—个整数B.不确定的值C.形参p中存放的值D.形参p的地址值4.下述程序执行的输出结果是()。

#include<stdio.h>main(){char a[2][4];strcpy(a。

"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&5. 下列程序的运行结果是( )。

#include<stdio.h>#define ADD(x) x+x main() { int m=1,n=2,k=3; int s=ADD(m+n)*k; printf("s=%d",s); }A.sum=18B.sum=10C.sum=9D.sum=256. 若有如下定义,则__________是对数组元素的正确的引用。

.int a[10] , *p ; p=a ;A.*&a[10]B.a[11]C.*(p+11)D.*p *p *p7.有以下程序:程序运行后的输出结果是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生的记录由学生和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把分数最低的学生数据放在h所指的数组中。

注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:
#include <stdio.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
int fun(STREC *a,STREC *b)
{
int i,j=0,n=0,min;
min=a[0].s;
for(i=0;i<N;i++)
if(a[i].s<min)
min=a[i].s;
for(i=0;i<N;i++)
if(a[i].s==min)
{
*(b+j)=a[i];j++;n++;
}
return n;
}
main ( )
{
STREC s[N]= {{"GA05",85},{"GA03",76},
{"GA02",69},{"GA04",85}, {" GA01",91},
{"GA07",72},{"GA08",64},{"GA06",87},
{"GA015",85},{"GA013",91},{"GA0 12",
64},{"GA014",91}, {"GA011",91},
{"GA017",64},{"GA0 18",64},{"GA016",
72}};
STREC h[N];
int i, n;
n=fun (s,h);
printf ("The %d lowest score:\n",n);
for(i=0;i<n; i++)
printf("%s %4 dkn",h[i].num,h[i].s);
printf("\n");
}。

相关文档
最新文档