C语言笔试程序填空题.docx

上传人:b****4 文档编号:5959220 上传时间:2023-05-09 格式:DOCX 页数:24 大小:20.97KB
下载 相关 举报
C语言笔试程序填空题.docx_第1页
第1页 / 共24页
C语言笔试程序填空题.docx_第2页
第2页 / 共24页
C语言笔试程序填空题.docx_第3页
第3页 / 共24页
C语言笔试程序填空题.docx_第4页
第4页 / 共24页
C语言笔试程序填空题.docx_第5页
第5页 / 共24页
C语言笔试程序填空题.docx_第6页
第6页 / 共24页
C语言笔试程序填空题.docx_第7页
第7页 / 共24页
C语言笔试程序填空题.docx_第8页
第8页 / 共24页
C语言笔试程序填空题.docx_第9页
第9页 / 共24页
C语言笔试程序填空题.docx_第10页
第10页 / 共24页
C语言笔试程序填空题.docx_第11页
第11页 / 共24页
C语言笔试程序填空题.docx_第12页
第12页 / 共24页
C语言笔试程序填空题.docx_第13页
第13页 / 共24页
C语言笔试程序填空题.docx_第14页
第14页 / 共24页
C语言笔试程序填空题.docx_第15页
第15页 / 共24页
C语言笔试程序填空题.docx_第16页
第16页 / 共24页
C语言笔试程序填空题.docx_第17页
第17页 / 共24页
C语言笔试程序填空题.docx_第18页
第18页 / 共24页
C语言笔试程序填空题.docx_第19页
第19页 / 共24页
C语言笔试程序填空题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言笔试程序填空题.docx

《C语言笔试程序填空题.docx》由会员分享,可在线阅读,更多相关《C语言笔试程序填空题.docx(24页珍藏版)》请在冰点文库上搜索。

C语言笔试程序填空题.docx

C语言笔试程序填空题

全省2级C

C语言机试程序填空题

1.下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去

再从该文件中输出这些数据到屏幕上,将其中的小写字母转换成大写字母。

然而,该程序是一个不完整

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

#include

main()

{

inti,flag;

charstr[80],c;

FILE*fp;

if((fp=fopen("TTT","w"))==NULL)

{printf("can'tcreatefile\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

voidmain(void)

{

inta[4][5]={{4,8,9,10,12},

{2,5,13,17,11},

{81,76,34,57,33},

{1,90,3,78,55}};

intmax,max_row,max_col;

inti,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

{

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个素数。

#defineM4

#defineN30

main()

{

inti,j,k,s=0;

for(i=M;i<=;i++)////////////N

{for(j=2;j<;j++)////////////i

if(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[]数组中的元素,反向交换存储位置。

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

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

voidinv(intx[],intn)

{

inttemp,i,j,m=[];////////n/2-1

for(i=0;i<=m;i++)

{j=n-i-1;

temp=x[i];

[];////////x[i]=x[j]

x[j]=[];///////temp

}

return;

}

main()

{

inta[10]={4,5,6,7,8,9,10,11,12,88};

inti;

printf("Theoriginalarray:

\n");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

inv(a,10);

printf("Thereversearray:

\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个素数。

#defineM4

#defineN30

main()

{

inti,j,k,s=0;

for(i=M;i<=________;i++)//////////////////N

{for(j=2;j<_______;j++)///////////////i

if(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()

{

intn,i;

intcheck(intx);

do{

printf("Inputn:

");

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);

}

intcheck(intx)

{

inti;

for(i=2;i

if(___________)return(0);/////if(x%i==0)

return

(1);

}

tk154.c中有整形数组a[]。

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

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

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

voidinv(intx[],intn)

{

inttemp,i,j,m=[];//////////////n/2-1

for(i=0;i<=m;i++)

{j=n-i-1;

temp=x[i];

[];//////////////x[i]=x[j]

x[j]=[];////////////temp

}

return;

}

main()

{

inta[10]={4,5,6,7,8,9,10,11,12,88};

inti;

printf("Theoriginalarray:

\n");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

inv(a,10);

printf("Thereversearray:

\n");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

}

tk155.c的功能是:

假设a数组中的数据巳按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个,然后以每行4个数据的格式输出a数组。

请填空。

#defineM10

main()

{inta[M],i,j,n;

for(i=0;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[]数组中的元素,反向交换存储位置。

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

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

voidinv(intx[],intn)

{

inttemp,i,j,m=[];///////////n/2

for(i=0;i<=m;i++)

{j=n-i-1;

temp=x[i];

[];///////////x[i]=x[j]

x[j]=[];///////////x[j]=temp

}

return;

}

main()

{

inta[10]={4,5,6,7,8,9,10,11,12,88};

inti;

printf("Theoriginalarray:

\n");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

inv(a,10);

printf("Thereversearray:

\n");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

}

tk165.c程序首先定义了一个结构体变量(包括年、月、日),然后从键盘上输入任意的一天(包括年月日),最后计算该日在当年中是第几天,此时当然要考虑闰年问题。

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

structdatetype{

intyear;

intmonth;

intday;

}date;

main()

{

inti,day_sum;

staticintday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("请输入年、月、日:

\n");

scanf("%d,%d,%d",&date.year,&date.month,&date.day);

day_sum=0;

for(i=1;i

_______

(1)_________;/////////////////data_sum+=data.day

if((date.year%4==0&&date.year%100!

=0||date.year%400==0)&&______

(2)_______)/////////////////data.month>2

day_sum+=1;

printf("%d月%d日是%d年的第%d天\n",date.month,date.day,date.year,day_sum);

}

tk166.c程序中,函数fun的功能是:

将s所指字符串中下标为偶数的字符删除,s中剩余的字符形成的新串

放在t所指的数组中。

例如,当s所指字符串中的内容为“ABCDEFGHIJK”,

在t所指数组中的内容应是“BDFHJ”。

#include

#include

#include

voidfun(char*s,chart[])

{

inti,j,n;

n=strlen(s);

for(i=0,j=0;i

if(____________)///////i%2!

=0

{t[j]=s[i];j++;}

t[j]=______;////////////////t[j]='\0'

}

main()

{

chars[80],t[80];

clrscr();

printf("\nPleaseenterstrings:

");

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

tk227.c求出以下分数序列的前n项之和。

1/2,2/3,3/5,5/8,8/13,13/21,......

例如,若n的值为:

5,则应输出:

3.007051

#include

main()

{intn,i;

doublesum,mole,deno,temp;

printf("Inputn:

");

scanf("%d",&n);

__________________;/////////sum=0;

mole=1;deno=2;

for(i=0;i

{sum=sum+mole/deno;

__________________;////temp=mole+deno;

mole=deno;

deno=temp;

}

printf("Theresult:

%f\n",sum);

}

tk228.c的功能是:

假设a数组中的数据巳按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个,然后以每行4个数据的格式输出a数组。

请填空。

#defineM10

main()

{inta[M],i,j,n;

for(i=0;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");

}

tk234.c中函数fun的功能是:

将a所指字符串中字符的倒序,和b所指字符串中的倒序,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。

例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,则c所指数组中的内容应该为"g4f3e2d1cba";而当a所指字符串中的内容为"1234",b所指字符串中的内容为"abcdefg"时,则c所指数组中的内容应该为"4g3f2e1dcba"。

请将函数fun补充完整,使它能得出正确的结果。

不得增行或删行,也不得更改程序的结构!

#include

#include

#include

voidmyswap(char*s)

{

char*sp,*st,ch;

sp=s;

st=s+strlen(s)-1;

while(sp<=st)

{ch=*sp;*sp=*st;*st=ch;sp++;st--;}

}

voidfun(char*a,char*b,char*c)

{

chars1[100],s2[100],*sa,*sb;

strcpy(s1,a);

strcpy(s2,b);

myswap(s1);myswap(s2);

sa=s1;sb=s2;

while(___________)/////(*sa||*sb)

{if(*sa){*c=*sa;c++;sa++;}

if(*sb){*c=*sb;c++;sb++;}

}

___________;/////*c='\0'

}

main()

{

chars1[100],s2[100],t[200];

clrscr();

printf("\nEnters1string:

");scanf("%s",s1);

printf("\nEnters2string:

");scanf("%s",s2);

fun(s1,s2,t);

printf("\nTheresultis:

%s\n",t);

}

tk273.c中函数fun的功能是:

将字符串s1中出现在字符串s2中的字符删除。

例如:

s1为"abcaa63akdfk"。

调用fun(s1,s2)后,s1为"bc63df"。

请将函数fun补充完整,使它能得出正确的结果。

注意:

不得增行或删行!

main()

{chars1[300]="abcaa63akdfk",s2[300]="ayk5";

fun(s1,s2);

printf("%s\n",s1);

}

fun(char*s1,char*s2)

{char*p1=s1,*p2;

while(*s1)

{p2=s2;

while(*p2&&([]!

=*p2))p2++;////////////*p1

if(*p2=='\0')*p1++=*s1;

s1++;

}

*p1='\[]';///////////'0'

}

本程序通过调用函数invert()将数组a中的元素头尾倒置过来。

例如:

若倒置前数组a中原来的元素为1,3,5,2,4和6,则头尾倒置后数组a的元素变为6,4,2,5,3和1。

假设数组a的初值就是1,3,5,2,4,6这六个数,在程序运行时输入。

请将源程序补充完整,要求得到正确的结果。

注意在答题过程中不得对源程序增行或删行,也不得更改程序的结构。

#include

#defineN6

voidinvert(s,i,j)

int*s,i,j;

{

intt;

if(i

{

t=*(s+i);

*(s+i)=*(s+j);

*(s+j)=t;

invert(s,_____

(1)_____,j-1);///////////i+1

}

}

main()

{

inta[N],i;

for(i=0;i

_____

(2)_____;/////////////invert(a,0,N-1)

for(i=0;i

printf("\n");

}

tk305.c程序中,函数fun的功能是:

将s所指字符串中下标为偶数的字符删除,s中剩余的字符形成的新串

放在t所指的数组中。

例如,当s所指字符串中的内容为“ABCDEFGHIJK”,在t所指数组中的内容应是“BDFHJ”。

#include

#include

#include

voidfun(char*s,chart[])

{

inti,j,n;

n=strlen(s);

for(i=0,j=0;i

if(____________)/////////n%i!

=0

{t[j]=s[i];j++;}

t[j]=______;////////t[j]='\0';

}

main()

{

chars[80],t[80];

clrscr();

printf("\nPleaseenterstrings:

");

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

tk393.c程序中有整形数组a[]。

通过调用函数inputdata90,给a[]数组元素输入数据;通过调用函数process(),

实现去掉数组中一个最大数值和一个最小数值的元素,返回其余元素的平均值。

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

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

floatprocess(int*);

voidinputdata(int*);

inputdata(a);

printf("Score:

%f\n",process(a));

}

floatprocess(int*p)

{

inti,maxindex,minindex;

floataver=0;

maxindex=minindex=0;

for(i=1;i<10;i++)

{

if(*(p+maxindex)<*(p+i))

maxindex=i;

if([])//////*(p+minindex)>*(p+i)

minindex=i;

}

*(p+maxindex)=0,*(p+minindex)=0;

for(i=0;i<10;i++)

aver=aver+*(p+i);

return[];//////aver/(i-2);

}

voidinputdata(int*k)

{

inti;

for(i=0;i<10;i++)

scanf("%d",k+i);

}

tk394.c程序中fun的功能是查询字符c在字符串str中是否存在。

例如,若输

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2