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

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

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

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

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

若字符串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="

C.chars[10];

D.chars[]="

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

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

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

howareyou?

Iamfine<

回车>

则输出结果是()

{chara[30],b[30];

scanf("

%s"

a);

gets(b);

printf("

%s\n%s\n"

a,b);

}

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<

sum;

{

if(i%10==0&

i!

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

\n"

%5d"

aa[i]);

}

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

wf=fopen("

debug\\2.out"

"

w"

sum=fun(15,aa);

fprintf(wf,"

fclose(wf);

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

【参考代码】

inti,j,k=0;

for(i=2;

=lim;

i++)

{

for(j=2;

j<

i;

j++)

if(i%j==0)break;

if(j>

=i)

aa[k++]=i;

}

returnk;

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

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

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

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

13579

29994

69998

13570

则函数值为61。

注意:

部分源程序给出如下。

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

试题程序:

*/

stdlib.h>

#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:

i<

M;

{for(j=0;

j<

N;

%6d"

aa[i][j]);

y=fun(aa);

\nThesun:

%d\n"

y);

debug\\out10.dat"

fprintf(wf,"

inti,j,sum=0;

for(j=0;

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

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

returnsum;

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

试题程序:

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

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

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

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

chars[3][81]={"

abcd"

deg"

diegns"

},p[81];

inti=0,n;

输入若干个字符串:

gets(ss[i]);

puts(ss[i]);

while(!

strcmp(ss[i],"

****"

)==0)/*用4个星号作为结束输入的标志*/

i++;

n=i;

fun(ss,n,ps);

\nmax=%s\n"

ps);

debug\\out15.dat"

fun(s,3,p);

p);

inti=0;

strcpy(max,a[0]);

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

num;

if(strlen(max)<

strlen(a[i]))

strcpy(max,a[i]);

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

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

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

711142122283335424449

*/

#defineM100

intfun(intm,inta[])

{

intaa[M],n,k;

n=fun(50,aa);

for(k=0;

k<

n;

k++)

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

{printf("

%4d"

aa[k]);

\n"

else

debug\\out4.dat"

inti,j=0;

for(i=1;

=m;

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

a[j++]=i;

returnj;

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

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

例如,若输入字符串"

-1234"

则函数把它转换为整数值-1234。

longfun(charp[])

chars[6];

longn;

Enterastring:

gets(s);

n=fun(s);

%ld\n"

debug\\out13.dat"

%ld"

fun("

));

longn=0,i=0;

intflag=1;

if(p[i]=='

-'

)/*负数时置flag为-1*/

{i++;

flag=-1;

elseif(p[i]=='

+'

)/*正数时置flag为1*/

while(p[i]!

\0'

{n=n*10+p[i]-'

/*将字符串转成相应的整数*/

returnn*flag;

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

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

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

注意:

voidfun(charss[])

chartt[100];

FILE*out,*in;

Pleaseenterancharacterstringwithin50characters:

gets(tt);

\n\nAfterchanging,thestring\n%s"

tt);

fun(tt);

\nbecomes\n%s"

in=fopen("

in.dat"

r"

out=fopen("

debug\\out14.dat"

fgets(tt,16,in);

strcat(tt,"

Afterchangingthestring"

fprintf(out,"

fclose(in);

fclose(out);

inti,n=0;

while(ss[i])

n++;

if((ss[i]>

a'

ss[i]<

z'

)&

i%2!

=0)

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

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

ss[i]='

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

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

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

FirstString

SecondString

则程序输出:

FirstStringSecondString

voidfun(charp1[],charp2[])

FILE*wf,*in;

chars1[80],s2[40];

charp1[80]="

FirstString"

p2[40]="

SecondString"

Enters1ands2:

);

%s%s"

s1,s2);

s1=%s\n"

s1);

s2=%s\n"

s2);

Invokefun(s1,s2):

fun(s1,s2);

Afterinvoking:

%s\n"

in=fopen("

debug\\out16.dat"

fscanf(in,"

%s%s"

p1,p2);

fun(p1,p2);

p1);

fclose(in);

inti,j;

p1[i]!

i++);

p2[j]!

='

j++)

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

p1[i]='

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

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

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

intfun(intm,intxx[])

intm,n,zz[100];

\nPleaseenteranintegernumberbetween10and100:

"

n);

m=fun(n,zz);

\n\nThereare%dnon-primenumberslessthan%d:

m,n);

for(n=0;

n<

m;

n++)

\n%4d"

zz[n]);

debug\\out7.dat"

m=fun(30,zz);

inti,j,n=0;

for(i=4;

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

{for(j=2;

if(j<

i)xx[n++]=i;

returnn;

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

/*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"

a"

到"

z"

26个字母各自出现的次数,

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

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

程序的输出结果应该是:

333221110000000000000000000

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

voidfun(chartt[],intpp[])

voidmain()

charaa[1000];

intbb[26],k;

system("

CLS"

\nPleaseenteracharstring:

aa);

fun(aa,bb);

for(k=0;

26;

k++)

bb[k]);

debug\\out2.dat"

fun("

abcdefgabcdeabc"

bb);

inti;

26;

pp[i]=0;

i=0;

for(;

tt[i]!

if(tt[i]>

tt[i]<

pp[tt[i]-'

]++;

程序改错

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

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

输入字符串时用"

#"

结束输入。

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

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

ctype.h>

fun(char*p)

{inti,t;

charc[80];

for(i=0,t=0;

p[i];

if(!

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

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

c[t]="

\0"

strcpy(p,c);

{charc,s[80];

Inputastring:

c=getchar();

while(c!

#'

{s[i]=c;

i++;

c=getchar();

s[i]='

fun(s);

puts(s);

【参考答案】

c[t]=0;

c[t]='

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

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

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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