C语言程序考试-上机考试试题填空试题 1-51【附答案】.docx
C语言程序考试-上机考试试题填空试题 1-51【附答案】C语言程序考试-上机考试试题填空试题 1-51【附答案】第1套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。试题程序:#include <stdio.h>#include <string.h>#include <conio.h>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 enter a string: "); gets(tt); printf("nThe result string is: n%s",fun( 3 );2.函数fun()的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4Efg,则应输出aBc4EFg。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>void 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("nPlease 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所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。试题程序:#include <stdio.h>#define SIZE 20fun (double *s,double *w) int k,i; double sum; for(k=2,i=0;i<SIZE;i+) si=k;k+=2; sum=0.0; for(k=0,i=0;i<SIZE;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); printf("The original data:n"); for(i=0;i<SIZE;i+) if(i%5=0) printf("n"); printf("%4.0f",ai); printf("nnThe result:n"); for(i=0;i<k;i+) printf("%6.2f", 3 ); printf("nn");2.函数fun()的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。试题程序:#define M 4#include <stdio.h>fun (int 1 ) int i,j,max= 2 ; for(i=0;i<2;i+) for(j=0;j<M;j+) if(max 3 aij) max=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 <stdio.h>#include <ctype.h>#include <conio.h>void fun(char *s)while( 1 ) if(*s>='A'&&*s<='Z'|*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 length<80: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所指字符串中的内容为ABCDEFG123456,其中字符A 的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。试题程序:#include <conio.h>#include <stdio.h>#include<string.h>void 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("nPlease 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 <stdio.h>#include <conio.h>void fun(long s,long *t)int d; long s1=1; *t=0; while(s>0) 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所指字符串中的内容为ABCDEFG12345,其中字符B的ASC码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASC码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。试题程序:#include <conio.h>#include <stdio.h>#include <string.h>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",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试题程序:#include <conio.h>#include <ctype.h>#include <stdio.h>#include <string.h>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",chrstr); 3 ; printf("nAfter changing:n %s",chrstr);2.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,函数fun()的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。试题程序:#include <stdio.h>#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;i<N;i+) if(max<ai.s) max=ai.s; for(i=0;i<N;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; i<n; i+) printf("%s %4dn ",hi.num,hi.s); printf("n"); out=fopen("out45.dat", "w"); fprintf(out, "%dn",n); for(i=0; i<n; i+) fprintf(out, "%4dn ",hi.s); fclose(out);第6套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。试题程序:#include <conio.h>#include <string.h>#include <stdio.h>#define N 80int fun(char *s,char *t) int n; char *p, *r; 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,则输出为asdafaaz67。试题程序:#include <stdio.h>#include <ctype.h>#include <conio.h>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); fclose(wf);第7套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。试题程序:#include <conio.h>#include <stdio.h>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门课的成绩已在主函数中给出。函数fun()的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。试题程序:#include <stdio.h>#define N 8typedef struct char num10; double sN; double ave; STRUC;void fun( ) int i; p->ave= 1 ; for(i=0;i<N;i+) p->ave=p->ave+p->si; p->ave= 2 ;main() FILE *wf; STRUC s= "GA005 ",85.5,76,69.5,85,91,72,64.5,87.5; int i; fun( 3 ); printf("The %s's student data:n", s.num); for(i=0;i<N;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 <conio.h>#include <stdio.h>#include <stdlib.h>fun(int n,int *a) int i,j,p,t; for (j=0;j< 1 ;j+) p=j; for (i= 2 ;i<n;i+) if (ap>ai) 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); printf("nAfter sorting %d numbers:n",n);putarr(n,aa);2.函数fun()的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3。试题程序:#include <conio.h>#include <stdio.h> 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); printf("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(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。试题程序:#include <stdio.h>#define N 10int fun(int a,int m) int low=0,high=N-1,mid; while(low<=high) mid= 1 ; if(m<amid) high= 2 ; else if(m>amid) 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<N;i+) printf("%d",ai); printf("Enter m: "); scanf("%d",&m); k=fun(a,m); if (k>=0) printf("m=%d,index=%dn",m,k); else printf("Not be found!n");2.函数fun()的功能是:移动一维数组中的内容,若数组中有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 <stdio.h>#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;j<n;j+) wj-1=wj; wj-1=t; main() FILE *wf; 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;i<n;i+) printf("%3d",ai); printf("nnEnter p: "); scanf("%d", 3 ); fun(a,p,n); printf("nThe data after moving:n"); for(i=0;i<n;i+) printf("%3d",ai); printf("nn"); wf=fopen("out.dat","w"); fun(b,3,n); for(i=0;i<n;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 <conio.h>#include <stdio.h> 1 M 10int aMM=0;void fun(int (*a)M, int m)int j,k; for(j=0;j<m;j+) for(k=0;k<m;k+) ajk= 2 ;main()int i, j, n; printf("Enter nn"); scanf("%d",&n); fun(a,n); for(i=0;i<n;i+) for (j=0;j<n;j+) printf("%4d ",aij); printf(" 3 "); 2.函数fun()的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。试题程序:#include <stdio.h>#include<string.h>#define N 80void 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","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 <conio.h>#include <stdio.h>#include < 1 >double 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; 2 ; return 3 ;main()int n; printf("Input N="); scanf("%d",&n); printf("%fn",fun(n);2.函数fun()的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是WSHWSHWSHWSH。试题程序:#include<stdio.h>#define M 3#define N 4void fun(char (*s)N,char 1 ) int i,j,k=0; for(i=0;i<N;i+) for(j=0;j<M;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;i<M;i+) for(j=0;j<N;j+) printf("%3c",wij); printf(" 3 "); fun(w,a); printf("The A string:n"); puts(a); printf("nn"); wf=fopen("out.dat","w"); fprintf(wf,"%s",a); fclose(wf);第12套 上机考试试题1. 填空题1.下列给定程序中,函数fun()的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。试题程序:#include <string.h>#include <stdio.h>#define N 5#define M 81 1 fun(char (*sq)M)int i; char *sp; 2 ; for(i=0;i<N;i+) if(strlen(sp)<strlen( 3 ) sp=sqi; return sp;main()char strNM, *longest; int i; printf("Enter %d lines:n ",N); for(i=0;i<N;i+) gets(stri); printf("nThe %d string :n ",N); for(i=0;i<N;i+) puts(stri); longest=fun(str); printf("nThe longest string :n "); puts(longest); 2.下列程序定义了N×N的二维数组,并在主函数中自动赋值。函数fun的功能是:使数字右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为a=1 92 7则返回主程序后a数组的值应为2 182 14试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#define N 5void fun(int aN, int m) int i,j; for(i=0;i<N;i+) for( 1 ;j<N;j+) aij= 2 *m;main() FILE *wf; int aNN,m, i, j; int bNN=1,9,0,5,1,2