C语言笔试--程序填空题

  • 格式:doc
  • 大小:85.50 KB
  • 文档页数:15

全省2级CC 语言机试程序填空题1.下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去再从该文件中输出这些数据到屏幕上, 将其中的小写字母转换成大写字母。

然而,该程序是一个不完整的程序,请在下划线空白处将其补充完整,以便得到正确答案,但不得增删原语句。

#include <stdio.h>main( ){int i,flag;char str[80],c;FILE *fp;if((fp=fopen("TTT","w"))==NULL){ printf("can't create file\n");exit(0);}for(flat=1;flag;){ printf("请输入字符串\n");gets(str);fprintf(fp,"%s",str);printf("是否继续输入?\n");if((c=getchar()=='N'|| (1) ) /////////////'n'flag=0;getchar();}fseek(fp,0,0);while(fscanf(fp,"%s",str)!=EOF){ for(i=0;str[i]!='\0';i++)if((str[i]>='a'&&(str[i]<='z'))str[i]=(2) /////////str[i]-32;printf("%s",str);}fclose(fp);}tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。

下面程序不完整,请将其补充完整,以便得到正确答案,注意:不得增行和删行,也不得修改程序的结构。

#include <stdio.h>void main(void){int a[4][5]={{4,8,9,10,12},{2,5,13,17,11},{81,76,34,57,33},{1,90,3,78,55}};int max , max_row , max_col;int i,j;max=________; ////////a[0][0]max_row=0;max_col=0;for (i=0;i<4;i++)for (j=0;j<5;j++)if( ______) /////////max<a[i][j]{max=a[i][j] ;max_row = i ;max_col = j;}printf("%d %d",max_row,max_col);tk57.c用来输出两整数M和N之间的所有素数(质数)。

所谓一个整数n为素数,是指n除了能被1和其本身n除尽外,不能被2到n-1中的任何整数除尽。

如7为素数,而9不是素数。

程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i 是否为素数,若是,则输出该素数,且通过变量s来控制每行输出5个素数。

#define M 4#define N 30main(){int i, j, k, s=0;for(i=M; i<= ; i++) //////////// N{ for(j=2; j< ; j++) //////////// iif(i%j== 0 ) break;if(j>=i){ printf("%5d", i);s=s+1;if(s%5 ) printf("\n");}}printf("\n");}tk101.c中有整形数组a[ ]。

通过调用子程序inv(),对a[ ]数组中的元素,反向交换存储位置。

请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。

不得增加行或删除行,也不得更改程序结构。

void inv(int x[],int n){int temp,i,j,m=[ ]; //////// n/2-1for(i=0;i<=m;i++){j=n-i-1;temp=x[i];[ ]; //////// x[i]=x[j]x[j]=[ ]; /////// temp}return;}main(){int a[10]={4,5,6,7,8,9,10,11,12,88};int i;printf("The original array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");inv(a,10);printf("The reverse array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}tk57.c用来输出两整数M和N之间的所有素数(质数)。

所谓一个整数n为素数,是指n除了能被1和其本身n除尽外,不能被2到n-1中的任何整数除尽。

如7为素数,而9不是素数。

程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i 是否为素数,若是,则输出该素数,且通过变量s来控制每行输出5个素数。

#define M 4#define N 30main(){int i, j, k, s=0;for(i=M; i<= ________ ; i++) //////////////////N{ for(j=2; j<_______ ; j++) ///////////////iif(i%j== 0 ) break;if(j>=i){ printf("%5d", i);s=s+1;if( s%5==0 ) printf("\n");}}printf("\n");}2.若一个整数x除了能被1和其本身x除尽外,不能被2到x-1中的任何整数除尽,则此数即为素数(或质数)。

例如7是素数,而9不是素数。

下面程序的功能是:将任意输入的一个大偶数n 分解为两个素数之和,并给出各种分解方法。

例如n=10时,分解后的结果为10=3+7 和10=5+5。

请填空(替换掉下划线部分)。

程序中,函数check用来判断一个整数x是否是素数,若是,返回1,否则返回0 。

#include "stdio.h"main( ){int n, i;int check( int x );do {printf( " Input n: " );scanf( " %d" , &n );} while( n % 2 != 0 );for( i=3; i<= n/2 ; i++ )if( check ( i ) && _____________ ) ///////////////check(n-i)printf( " %d = %d + %d \n ", n, i, n-i );}int check ( int x ){int i;for( i=2; i< x ; i++ )if( ___________ ) return ( 0 ); /////if(x%i==0)return ( 1 );}tk154.c中有整形数组a[ ]。

通过调用子程序inv(),对a[ ]数组中的元素,反向交换存储位置。

请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。

不得增加行或删除行,也不得更改程序结构。

void inv(int x[],int n){int temp,i,j,m=[ ]; ////////////// n/2-1for(i=0;i<=m;i++){j=n-i-1;temp=x[i];[ ]; ////////////// x[i]=x[j]x[j]=[ ]; //////////// temp}return;}main(){int a[10]={4,5,6,7,8,9,10,11,12,88};int i;printf("The original array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");inv(a,10);printf("The reverse array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}tk155.c的功能是:假设a数组中的数据巳按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个,然后以每行4个数据的格式输出a数组。

请填空。

# define M 10main(){int a[M],i,j,n;for(i=0;i<M;i++)scanf("%d",a+i);n=i=M-1;while(i>=0){ if(*(a+i)==*(a+i-1)){for(j=___________;j<=n;j++) ////////// i*(a+j-1)=*(___________); ////////// a+j_____________; ///////// n--}i--;}for(i=1;i<=n+1;i++){printf("%4d",*(a+i-1));if(i%4==0)printf("\n");}printf("\n");}tk163.c中有整形数组a[ ]。

通过调用子程序inv(),对a[ ]数组中的元素,反向交换存储位置。

请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。

不得增加行或删除行,也不得更改程序结构。

void inv(int x[],int n){int temp,i,j,m=[ ]; /////////// n/2for(i=0;i<=m;i++){j=n-i-1;temp=x[i];[ ]; /////////// x[i]=x[j]x[j]=[ ]; /////////// x[j]=temp}return;}main(){int a[10]={4,5,6,7,8,9,10,11,12,88};int i;printf("The original array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");inv(a,10);printf("The reverse array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}tk165.c 程序首先定义了一个结构体变量(包括年、月、日),然后从键盘上输入任意的一天(包括年月日),最后计算该日在当年中是第几天,此时当然要考虑闰年问题。