C语言上机题库百科园第5章南信大.docx

上传人:b****5 文档编号:8134422 上传时间:2023-01-29 格式:DOCX 页数:36 大小:75.14KB
下载 相关 举报
C语言上机题库百科园第5章南信大.docx_第1页
第1页 / 共36页
C语言上机题库百科园第5章南信大.docx_第2页
第2页 / 共36页
C语言上机题库百科园第5章南信大.docx_第3页
第3页 / 共36页
C语言上机题库百科园第5章南信大.docx_第4页
第4页 / 共36页
C语言上机题库百科园第5章南信大.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

C语言上机题库百科园第5章南信大.docx

《C语言上机题库百科园第5章南信大.docx》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第5章南信大.docx(36页珍藏版)》请在冰豆网上搜索。

C语言上机题库百科园第5章南信大.docx

C语言上机题库百科园第5章南信大

C语言上机题库百科园第5章!

南信大!

第五章

单选

有以下程序,程序运行后的输出结果是()

#include

#include

intmain()

{

chara[20]=”ABCD\0EFG\0”,b[]=”IJK”;

strcat(a,b);printf(“%s\n”,a);

return0;

}

A.ABCDE\0FG\0IJK

B.ABCDIJK

C.EFGIJK

D.IJK

有以下程序,程序运行后的输出结果是()

#include

intmain()

  {chars[]="012xy\08s34f4w2";

  inti,n=0;

  for(i=0;s[i]!

=0;i++)

  if(s[i]>='0'&&s[i]<='9')n++;

  printf("%d\n",n);

return0;

  }

A.7

B.0

C.8

D.3

下列选项中,能够满足"若字符串s1等于字符串s2,则执行ST"要求的是()

A.if(strcmp(s2,s1)==0)ST;

B.if(s1-s2==0)ST;

C.if(strcpy(s1,s2)==1)ST;

D.if(s1==s2)ST;

以下选项中正确的语句组是()

A.chars;s={"BOOK!

"};

B.chars[];s="BOOK!

";

C.chars[10];s="BOOK!

";

D.chars[]="BOOK!

";

以下数组定义中错误的是()

A.intx[2][3]={{1,2},{3,4},{5,6}};

B.intx[2][3]={1,2,3,4,5,6};

C.intx[][3]={0};

D.intx[][3]={{1,2,3},{4,5,6}};

若有定义语句:

intm[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()

A.m[m[0]]

B.m[2*2]

C.m[--i]

D.m[m[i]]

下列选项中,能正确定义数组的语句是()

A.intnum[];

B.intN=2008;

intnum[N];

C.intnum[0…2008];

D.#defineN2008

intnum[N];

有以下程序,程序运行时若输入:

howareyou?

Iamfine<回车>则输出结果是()

#include

intmain()

{chara[30],b[30];

scanf("%s",a);

gets(b);

printf("%s\n%s\n",a,b);

return0;

}

A.howareyou?

Iamfine

B.howareyou?

Iamfine

C.how

areyou?

Iamfine

D.howareyou?

下面是有关C语言字符数组的描述,其中错误的是()

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

intaa[MAX];

printf("输入一个整数");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i

{

if(i%10==0&&i!

=0)/*每行输出10个数*/

printf("\n");

printf("%5d",aa[i]);

}

/******************************/

wf=fopen("debug\\2.out","w");

sum=fun(15,aa);

for(i=0;i

fprintf(wf,"%d\n",aa[i]);

fclose(wf);

/*****************************/

return0;

}

【参考代码】

inti,j,k=0;

for(i=2;i<=lim;i++)

{

for(j=2;j

if(i%j==0)break;

if(j>=i)

aa[k++]=i;

}

returnk;

/*请编写函数fun,函数的功能是:

求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

例如,若二维数组中的值为

13579

29994

69998

13570

则函数值为61。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

#defineM4

#defineN5

intfun(inta[M][N])

{

/***************Begin************/

 

/***************End************/

}

voidmain()

{

FILE*wf;

intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,10}};

inti,j,y;

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

printf("%6d",aa[i][j]);

printf("\n");

}

y=fun(aa);

printf("\nThesun:

%d\n",y);

printf("\n");

/******************************/

wf=fopen("debug\\out10.dat","w");

fprintf(wf,"%d",y);

fclose(wf);

/*****************************/

}

【参考代码】

inti,j,sum=0;

for(i=0;i

for(j=0;j

if(i==0||i==M-1||j==0||j==N-1)

sum=sum+a[i][j];

returnsum;

/*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

#include

voidfun(chara[][81],intnum,charmax[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

charss[10][81],ps[81];

chars[3][81]={"abcd","deg","diegns"},p[81];

inti=0,n;

printf("输入若干个字符串:

");

gets(ss[i]);

puts(ss[i]);

while(!

strcmp(ss[i],"****")==0)/*用4个星号作为结束输入的标志*/

{

i++;

gets(ss[i]);

puts(ss[i]);

}

n=i;

fun(ss,n,ps);

printf("\nmax=%s\n",ps);

/******************************/

wf=fopen("debug\\out15.dat","w");

fun(s,3,p);

fprintf(wf,"%s",p);

fclose(wf);

/*****************************/

}

【参考代码】

inti=0;

strcpy(max,a[0]);

/*找出最长的一个字符串*/

for(i=0;i

if(strlen(max)

strcpy(max,a[i]);

/*请编写一个函数fun,它的功能是:

求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传给m的值为50,则程序输出:

711142122283335424449

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

#defineM100

intfun(intm,inta[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

intaa[M],n,k;

n=fun(50,aa);

for(k=0;k

if((k+1)%20==0)/*每行输出20个数*/

{printf("%4d",aa[k]);

printf("\n");

}

else

printf("%4d",aa[k]);

printf("\n");

/******************************/

wf=fopen("debug\\out4.dat","w");

for(k=0;k

fprintf(wf,"%d\n",aa[k]);

fclose(wf);

/*****************************/

}

【参考代码】

inti,j=0;

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

if(i%7==0||i%11==0)

a[j++]=i;

returnj;/*返回这些数的个数*/

/*请编写一个函数fun,它的功能是:

将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

例如,若输入字符串"-1234",则函数把它转换为整数值-1234。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

longfun(charp[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

chars[6];

longn;

printf("Enterastring:

\n");

gets(s);

n=fun(s);

printf("%ld\n",n);

/******************************/

wf=fopen("debug\\out13.dat","w");

fprintf(wf,"%ld",fun("-1234"));

fclose(wf);

/*****************************/

}

【参考代码】

longn=0,i=0;

intflag=1;

if(p[i]=='-')/*负数时置flag为-1*/

{i++;flag=-1;}

elseif(p[i]=='+')/*正数时置flag为1*/

i++;

while(p[i]!

='\0')

{n=n*10+p[i]-'0';/*将字符串转成相应的整数*/

i++;

}

returnn*flag;

/*请编写一个函数voidfun(charss[]),其功能是:

将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入abc4EFg,则应输出aBc4EFg。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

voidfun(charss[])

{

/***************Begin************/

 

/***************End************/

}

voidmain()

{

chartt[100];

FILE*out,*in;

printf("Pleaseenterancharacterstringwithin50characters:

\n");

gets(tt);

printf("\n\nAfterchanging,thestring\n%s",tt);

fun(tt);

printf("\nbecomes\n%s",tt);

/******************************/

in=fopen("in.dat","r");

out=fopen("debug\\out14.dat","w");

fgets(tt,16,in);

strcat(tt,"Afterchangingthestring");

fun(tt);

fprintf(out,"%s",tt);

fclose(in);

fclose(out);

/******************************/

}

【参考代码】

inti,n=0;

while(ss[i])

{

n++;

i++;

}

for(i=0;i

if((ss[i]>='a'&&ss[i]<='z')&&i%2!

=0)

/*将下标为奇数位置的字母转换成大写*/

ss[i]=ss[i]-32;

ss[i]='\0';

/*编写一个函数fun,它的功能是:

实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

例如,分别输入下面两个字符串:

FirstString

SecondString

则程序输出:

FirstStringSecondString

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

voidfun(charp1[],charp2[])

{

/***************Begin************/

 

/***************End************/

}

voidmain()

{

FILE*wf,*in;

chars1[80],s2[40];

charp1[80]="FirstString",p2[40]="SecondString";

printf("Enters1ands2:

\n");

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

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

printf("s2=%s\n",s2);

printf("Invokefun(s1,s2):

\n");

fun(s1,s2);

printf("Afterinvoking:

\n");

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

/******************************/

in=fopen("in.dat","r");

wf=fopen("debug\\out16.dat","w");

fscanf(in,"%s%s",p1,p2);

fun(p1,p2);

fprintf(wf,"%s",p1);

fclose(in);

fclose(wf);

/*****************************/

}

【参考代码】

inti,j;

for(i=0;p1[i]!

='\0';i++);

for(j=0;p2[j]!

='\0';j++)

p1[i++]=p2[j];

p1[i]='\0';

/*请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如,输入17,则应输出46891012141516。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

intfun(intm,intxx[])

{

/***************Begin************/

 

/***************End************/

}

voidmain()

{

FILE*wf;

intm,n,zz[100];

printf("\nPleaseenteranintegernumberbetween10and100:

");

scanf("%d",&n);

m=fun(n,zz);

printf("\n\nThereare%dnon-primenumberslessthan%d:

",m,n);

for(n=0;n

printf("\n%4d",zz[n]);

/******************************/

wf=fopen("debug\\out7.dat","w");

m=fun(30,zz);

for(n=0;n

fprintf(wf,"%d\n",zz[n]);

fclose(wf);

/*****************************/

}

【参考代码】

inti,j,n=0;

for(i=4;i

/*找出大于1小于整数m的非素数*/

{for(j=2;j

if(i%j==0)break;

if(j

}

returnn;/*返回非素数的个数*/

/*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,

并依次放在pp所指数组中。

例如,当输入字符串abcdefghabcdeabc后,

程序的输出结果应该是:

333221110000000000000000000

注意:

部分源程序给出如下。

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

试题程序:

*/

#include

#include

voidfun(chartt[],intpp[])

{

/***************Begin************/

 

/***************End************/

}

voidmain()

{

FILE*wf;

charaa[1000];

intbb[26],k;

system("CLS");

printf("\nPleaseenteracharstring:

");

scanf("%s",aa);

fun(aa,bb);

for(k=0;k<26;k++)

printf("%d\n",bb[k]);

/******************************/

wf=fopen("debug\\out2.dat","w");

fun("abcdefgabcdeabc",bb);

for(k=0;k<26;k++)

fprintf(wf,"%d\n",bb[k]);

fclose(wf);

/*****************************/

}

【参考代码】

inti;

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

pp[i]=0;

i=0;

for(;tt[i]!

='\0';i++)

if(tt[i]>='a'&&tt[i]<='z')

pp[tt[i]-'a']++;

程序改错

/*下列给定程序中,函数fun的功能是:

删除字符串s中所有空白字符(包括Tab符、回车符及换行符)。

输入字符串时用"#"结束输入。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

*/

#include

#include

#include

fun(char*p)

{inti,t;charc[80];

for(i=0,t=0;p[i];i++)

if(!

isspace(*(p+i)))c[t++]=p[i];

/**********ERROR**********/

c[t]="\0";

strcpy(p,c);

}

voidmain()

{charc,s[80];

inti=0;

printf("Inputastring:

");

c=getchar();

while(c!

='#')

{s[i]=c;i++;c=getchar();}

s[i]='\0';

fun(s);

puts(s);

}

【参考答案】

c[t]=0;

c[t]='\0';

/*下列给定程序中,函数fun的功能是:

求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行

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

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1