《C语言程序考试-上机考试试题填空试题 1-51【附答案】.docx》由会员分享,可在线阅读,更多相关《C语言程序考试-上机考试试题填空试题 1-51【附答案】.docx(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序考试-上机考试试题填空试题 1-51【附答案】C语言程序考试-上机考试试题填空试题 1-51【附答案】第1套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。试题程序:#include #include #include char 1 fun(char tt) int i; for(i=0;tti;i+) if(tti=A)&(tti= 2 ) tti+=32; return(tt);main() char tt81; printf(nPlease ent
2、er a string: ); gets(tt); printf(nThe result string is: n%s,fun( 3 );2.函数fun()的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4Efg,则应输出aBc4EFg。试题程序:#include#include#includevoid fun(char *ss) int i; for(i=0;ssi!=0;i+) if(i%2=1&ssi=a&ssi=z) 1 main() 2 *wf; char tt81,s10=abc4Efg 3 printf(nPlea
3、se enter an string within 80 characters:n); gets(tt); printf(nnAfter changing, the stringn%s,tt); fun(tt); printf(nbecomesn%sn,tt); wf=fopen(out.dat,w); fun(s); fprintf(wf,%s,s); fclose(wf);第2套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数
4、不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。试题程序:#include #define SIZE 20fun (double *s,double *w) int k,i; double sum; for(k=2,i=0;iSIZE;i+) si=k;k+=2; sum=0.0; for(k=0,i=0;iSIZE;i+) sum+=si; if(i+1) 1 5=0) wk=sum/5; sum=0;k+; 2 k;main() double aSIZE,bSIZE/5; int i, k; k=fun(a,b); pr
5、intf(The original data:n); for(i=0;iSIZE;i+) if(i%5=0) printf(n); printf(%4.0f,ai); printf(nnThe result:n); for(i=0;ik;i+) printf(%6.2f, 3 ); printf(nn);2.函数fun()的功能是:求出一个2M整型二维数组中最大元素的值,并将此值返回调用函数。试题程序:#define M 4#include fun (int 1 ) int i,j,max= 2 ; for(i=0;i2;i+) for(j=0;jM;j+) if(max 3 aij) max
6、=aij; return max;main() FILE *wf; int arr2M=5,8,3,45,76,-4,12,82; printf(max=%dn,fun(arr); wf=fopen(out.dat,w); fprintf (wf,%d,fun(arr); fclose(wf);第3套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。试题程序:#include #include #include void fun(char *s)while( 1 ) if(*s=A&
7、*s=a&*s=z) if(*s=Z) *s=A; else if(*s=z) *s=a; else *s+= 2 ; 3 ; main() char s80; printf(n Enter a string with length80:nn); gets (s); printf(n The string:nn); puts(s); fun(s); printf(nn The Cords :nn); puts(s);2.函数fun()的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中
8、的内容为ABCDEFG123456,其中字符A 的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。试题程序:#include #include #includevoid fun(char*s, char t) int i,j=0; for(i=0;si!= 1 ;i+) if(i%2=0 2 si%2=0) tj+=si; 3 main() FILE *wf; char s100 ,t100; printf(n
9、Please enter string S: ); scanf(%s,s); fun(s,t); printf(nThe result is: %sn,t); wf=fopen(out.dat,w); fun(ABCDEFG123456,t); fprintf(wf,%s,t); fclose(wf);第4套 上机考试试题1. 填空题1.下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。试题程序:#include #include void fun(long s
10、,long *t)int d; long s1=1; *t=0; while(s0) d=s 1 10; if(d%2!=0) *t=d*s1+*t; s1*= 2 ; s/= 3 ; main()long s, t; clrscr(); printf(nPlease enter s: ); scanf(%ld,&s); fun(s,&t); printf(The result is :%ldn,t);2.函数fun()的功能是:将s所指字符串中除了下标为偶数、同时ASC码值为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为A
11、BCDEFG12345,其中字符B的ASC码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASC码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。试题程序:#include #include #include void fun(char *s, char t) int i,j=0; for(i=0;si!= 1 ;i+) if(i%2=0 & si%2 2 0) tj+=si; 3 main() FILE *wf; char s100,t100; printf(nPlease enter string S: ); scanf(%s
12、,s); fun(s,t); printf(nThe result is: %sn,t); wf=fopen(out.dat,w); fun(ABCDEFG12345,t); fprintf(wf,%s,t); fclose(wf);第5套 上机考试试题1. 填空题1.下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN试题程序:#includ
13、e #include #include #include void fun(char *p) int k=0; for ( ;*p;p+) if (k) if (*p= ) 1 ; 2 )=toupper(*(p-1); else k=1;main()char chrstr64; int d; printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr); d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore changing:n %s,chrs
14、tr); 3 ; printf(nAfter changing:n %s,chrstr);2.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,函数fun()的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。试题程序:#include #define 1 16typedef 2 char num10; int s ;STRUC;int fun (STRUC *a, STRUC *b) int i,j=0,max=a0.s; for(i=0;iN;i+) if(maxai.s) max=ai.s; for(i=0
15、;iN;i+) if(max=ai.s) bj 3 =ai; return j;main () STRUC sN=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; STRUC hN; int i, n; FILE *out; n=fun(s,h); printf(The %d highest score :n,n); for (i=0; in; i+)
16、 printf(%s %4dn ,hi.num,hi.s); printf(n); out=fopen(out45.dat, w); fprintf(out, %dn,n); for(i=0; in; i+) fprintf(out, %4dn ,hi.s); fclose(out);第6套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。试题程序:#include #include #include #define N 80int fun(char *s,char *t) int n; char *p, *r;
17、n=0; while(*s) p=s; r=t; while(*r) if(*r=*p) r+; 1 ; else break; if(*r= 2 ) n+; 3 ; return n;main()char aN,bN; int m; printf(nPlease enter string a: );gets(a); printf(nPlease enter substring b: ); gets(b); m=fun(a,b); printf(nThe result is :m=%dn,m); 2.函数fun()的功能是用来删除字符串中的所有空格。例如:输入asd af aa z67,则输出
18、为asdafaaz67。试题程序:#include #include #include int fun (char *str) int i,j=0; for(i=0;stri!= 1 ;i+) if(stri!= ) strj+= 2 ; 3 =0;main() FILE *wf; char str81,*s=asd af aa z67; printf(Input a string : ); gets(str); puts(str); fun(str); printf(* str: %sn,str); wf=fopen(out.dat,w); fun(s); fprintf(wf,%s,s);
19、 fclose(wf);第7套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。试题程序:#include #include int fun(int *x,int y) 1 t; t=*x;*x=y; return(t) 2 main()int a=3,b=8; printf(%d %dn ,a,b); b=fun( 3 ,b); printf(%d %dn ,a,b);2.某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩
20、已在主函数中给出。函数fun()的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。试题程序:#include #define N 8typedef struct char num10; double sN; double ave; STRUC;void fun( ) int i; p-ave= 1 ; for(i=0;iave=p-ave+p-si; p-ave= 2 ;main() FILE *wf; STRUC s= GA005 ,85.5,76,69
21、.5,85,91,72,64.5,87.5; int i; fun( 3 ); printf(The %ss student data:n, s.num); for(i=0;iN;i+) printf(%4.1fn,s.si); printf(nave=%7.3fn, s.ave); wf=fopen(out.dat,w); fprintf(wf,ave=%7.3f, s.ave); fclose(wf);第8套 上机考试试题1. 填空题1.下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。试题程序:#include #include #include fun(int n,in
22、t *a) int i,j,p,t; for (j=0;j 1 ;j+) p=j; for (i= 2 ;iai) p=i; if(p!=j) t=aj;aj=ap;ap=t; putarr( int n,int *z)int i; for (i=1;i=n;i+, 3 ) printf(%4d,*z); if (!(i%10) ) printf(n); printf(n);main()int aa20=9,3,0,4,1,2,5,6,8,10,7, n=11; printf(nnBefore sorting %d numbers:n,n); putarr(n,aa); fun(n,aa);
23、printf(nAfter sorting %d numbers:n,n);putarr(n,aa);2.函数fun()的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3。试题程序:#include #include 1 M 81int fun(char *ss, char c) int i=0; for(;*ss 2 0;ss+) if(*ss=c) i+; return 3 ;main() FILE *wf; char aM, ch; printf(nPlease enter a string: ); gets(a); pr
24、intf(nPlease enter a char: ); ch=getchar(); printf(nThe number of the char is: %dn, fun(a,ch); wf=fopen(out.dat,w); fprintf(wf,%d,fun(123412132,1); fclose(wf);第9套 上机考试试题1. 填空题1.N个有序整数数列已放在一维数组中,给定下列程序中,函数fun() 的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhig
25、h,查找结束。试题程序:#include #define N 10int fun(int a,int m) int low=0,high=N-1,mid; while(low=high) mid= 1 ; if(mamid) low=mid+1; else return(mid); 3 (-1);main() int i,aN=-3,4,7,9,13,24,67,89,100,180,k,m; printf(a数组中的数据如下:); for(i=0;i=0) printf(m=%d,index=%dn,m,k); else printf(Not be found!n);2.函数fun()的功能
26、是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0到p(pn-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为3。移动后,一维数组中的内容应为5,6,7,8,9,10,11,12,13,14,15,1,2,3,4。试题程序:#include #define N 80void fun(int *w, int p, int n) int i,j,t; for(i=0;i= 1 ;i+) t= 2 ; for(j=1;jn;j+) wj-1=wj; wj-1=t; main() FILE *wf;
27、int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,bN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int i, p, n=15; printf(The original data:n); for(i=0;in;i+) printf(%3d,ai); printf(nnEnter p: ); scanf(%d, 3 ); fun(a,p,n); printf(nThe data after moving:n); for(i=0;in;i+) printf(%3d,ai); printf(nn); wf=fopen(out.dat
28、,w); fun(b,3,n); for(i=0;in;i+) fprintf(wf,%3d,bi); fclose(wf);第10套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:根据形参m的值(2m9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。例如,若输入2,则输出1 22 4输入4,则输出1 2 3 42 4 6 83 6 9 124 8 12 16试题程序:#include #include 1 M 10int aMM=0;void fun(int (*a)M, int m)int j,k; for(j=0;jm;j+) for(k=0;
29、km;k+) ajk= 2 ;main()int i, j, n; printf(Enter nn); scanf(%d,&n); fun(a,n); for(i=0;in;i+) for (j=0;jn;j+) printf(%4d ,aij); printf( 3 ); 2.函数fun()的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。试题程序:#include #include#define N 80v
30、oid fun (char *w,int m) int i,j; char t; for(i=1;i=m;i+) t=w0; for(j=1;wj!=0;j+) wj-1= 1 ; 2 =t; main() 3 *wf; char aN= ABCDEFGHIJK; int m; printf(The origina string :n); puts(a); printf(nnEnter m: ); scanf(%d,&m); fun(a,m); printf(nThe string after moving :n); puts(a); printf(nn); wf=fopen(out.dat,
31、w); fun(b,3); fprintf(wf,%s,b); fclose(wf);第11套 上机考试试题1. 填空题1.已知一个数列从0项开始的前3项:0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun()的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为23.197745。试题程序:#include #include #include double fun(int n) double sum, s0, s1, s2, s; int k; sum=1.0; if (n=2) sum=0.0; s0=0.0;
32、 s1=0.0; s2=1.0; for (k=4;k=n;k+) s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2; 2 ; return 3 ;main()int n; printf(Input N=); scanf(%d,&n); printf(%fn,fun(n);2.函数fun()的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是WSHWSHWSHWSH。试题程序:#include#define M 3#define N 4void fun(char (*s)N
33、,char 1 ) int i,j,k=0; for(i=0;iN;i+) for(j=0;jM;j+) bk+= 2 ; bk=0;main() FILE *wf; char a100,wMN= W, W, W, W,S, S, S, S,H, H, H, H; int i,j; printf(The matrix:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%3c,wij); printf( 3 ); fun(w,a); printf(The A string:n); puts(a); printf(nn); wf=fopen(out.dat,w);
34、fprintf(wf,%s,a); fclose(wf);第12套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。试题程序:#include #include #define N 5#define M 81 1 fun(char (*sq)M)int i; char *sp; 2 ; for(i=0;iN;i+) if(strlen(sp)strlen( 3 ) sp=sqi; return sp;main()char strNM, *longest; int i;
35、printf(Enter %d lines:n ,N); for(i=0;iN;i+) gets(stri); printf(nThe %d string :n ,N); for(i=0;iN;i+) puts(stri); longest=fun(str); printf(nThe longest string :n ); puts(longest); 2.下列程序定义了NN的二维数组,并在主函数中自动赋值。函数fun的功能是:使数字右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为a=1 92 7则返回主程序后a数组的值应为2 182 14试题程序:#include#include#include#define N 5void fun(int aN, int m) int i,j; for(i=0;iN;i+) for( 1 ;jN;j+) aij= 2 *m;main() FILE *wf; int aNN,m, i, j; int bNN=1,9,0,5,1,2