C语言上机题库百科园第6章南信大Word格式文档下载.docx

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

C语言上机题库百科园第6章南信大Word格式文档下载.docx

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

C语言上机题库百科园第6章南信大Word格式文档下载.docx

s="

;

D.char*s;

scanf("

%s"

s);

设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是()。

A.p2=c;

B.c=*p1+*p2;

C.p1=p2;

D.c=*p1*(*p2);

已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是()。

A.*p=max(a,b);

B.*p=max;

C.p=max;

D.p=max(a,b);

以下正确的叙述是()。

A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定

B.当main函数带有形参时,传给形参的值只能从命令行中得到

C.若有说明:

intmain(intargc,char**argv),则argc的值必须大于1

D.C语言允许main函数带形参,形参名只能是argc和argv

若有定义:

int(*p)[4];

则标识符p()。

A.是一个指针数组名

B.定义不合法

C.是一个指向整型变量的指针

D.是一个指针,它指向一个含有四个整型元素的一维数组

设有程序段:

chars[]="

china"

;

char*p;

p=s;

则下面叙述正确的是()。

A.*p与s[0]相等

B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等

D.s和p完全相同

char*s=”abcde”;

s+=2;

printf(“%s”,s);

A.字符'

c'

的地址

B.不确定

C.cde

D.字符'

下面判断正确的是()。

A.charstr[10]={"

等价于charstr[10];

str[]={"

}

B.charc[4]="

abc"

d[4]="

等价于charc[4]=d[4]="

C.char*a="

等价于char*a;

*a="

D.char*s="

等价于char*s;

chars[]=”china”;

则下面叙述正确的是()

A.数组s中的内容和指针变量p中的内容相等

B.*p与s[0]相等

已有变量定义和函数调用语句:

inta=25;

print_value(&

a);

下面函数的输出结果是()

voidprint_value(int*x)

{printf(“%d\n”,++*x);

A.24

B.23

C.25

D.26

若有说明:

int*p,m=5,n;

以下程序段正确的是()

A.p=&

n;

*p=m;

B.p=&

scanf("

%d"

&

p);

C.p=&

*p);

D.scanf("

n);

*p=n;

变量的指针,其含义是指该变量的()

A.值

B.地址

C.一个标志

D.名

已有定义intk=2;

int*ptr1,*ptr2;

且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()

A.ptr2=k;

B.k=*ptr1+*ptr2;

C.k=*ptr1*(*ptr2);

D.ptr1=ptr2

程序设计

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

判断字符串是否为回文,若是则函数返回1,主函数中输出"

YES"

否则返回0,主函数中输出"

NO"

回文是指顺读和倒读都一样的字符串。

例如,字符串LEVEL是回文,而字符串123312就不是回文。

注意:

部分源程序给出如下。

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

试题程序:

*/

#include<

stdio.h>

#defineN80

intfun(charstr[])

{

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

 

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

voidmain()

chars[N];

FILE*out;

chartest[][80]={"

1234321"

"

123421"

123321"

abcdCBA"

inti;

printf("

Enterastring:

"

);

gets(s);

\n\n"

puts(s);

if(fun(s))

printf("

YES\n"

else

NO\n"

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

out=fopen("

debug\\out12.dat"

w"

for(i=0;

i<

4;

i++)

if(fun(test[i]))

fprintf(out,"

else

fclose(out);

【参考代码】

intfun(charstr[])

{

inti,n=0,fg=1,j=0;

while(str[j])

{

n++;

j++;

}

n/2;

i++)

/*循环比较字符*/

if(str[i]==str[n-1-i]);

/*相同,什么都不作*/

else

/*不同,直接跳出循环*/

fg=0;

break;

returnfg;

}

统计一行字符串中单词的个数,作为函数值返回。

一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

#include<

string.h>

intfun(char*s)

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

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

FILE*wf;

charline[N];

intnum=0;

Enterastring:

\n"

gets(line);

num=fun(line);

Thenumberofwordis:

%d\n\n"

num);

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

wf=fopen("

d:

\\out19.dat"

fprintf(wf,"

fun("

Thisisabigcar"

));

fclose(wf);

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

inti,j=0;

for(i=0;

s[i]!

\0'

if(s[i]!

'

&

(s[i+1]=='

||s[i+1]=='

))

/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/

returnj;

/*返回单词个数*/

/*假定输入的字符串中只包含字母和*号。

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

除了字符串前导的*号之外,将串中其他*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。

*/

voidfun(char*a)

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

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

chars[81];

FILE*in,*out;

\n"

fun(s);

Thestringafterdeleted:

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

in=fopen("

in21.dat"

r"

debug\\out21.dat"

8;

{

fscanf(in,"

s);

fprintf(out,"

%s\n"

fclose(in);

inti=0;

char*p=a;

while(*p&

*p=='

*'

a[i]=*p;

i++;

p++;

while(*p)

if(*p!

p++;

a[i]='

将字符串中的前导*号全部删除,中间和后面的*号不删除。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G*******。

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

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

FILE*wf,*in;

chars[81],t[81]="

****A*BC*DEF*G*******"

puts(s);

in18.dat"

debug\\out18.dat"

t);

fun(t);

while(*p=='

/*指针p指向字符串第一个字母*/

for(;

*p!

p++,a++)

*a=*p;

*a='

/*请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。

#defineN81

voidfun(char*s)

chara[N];

"

gets(a);

Theoriginalstringis:

puts(a);

fun(a);

Thestringaftermodified:

strcpy(a,"

HelloWorld!

ThisisafirstCprogram!

\\out17.dat"

a);

charch;

inti,m,n;

i=0;

m=n=strlen(s)-1;

while(i<

(n+1)/2)

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m--;

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

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位依次放在c数的百位和个位上。

例如,当a=45,b=12,调用该项函数后,c=4152。

conio.h>

voidfun(inta,intb,long*c)

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

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

inta,b;

longc;

Inputa,b:

%d%d"

a,&

b);

fun(a,b,&

c);

Theresultis:

%ld\n"

c);

debug\\out20.dat"

for(a=10;

a<

20;

a++)

fun(a,109-a,&

%d\n"

fclose(out);

*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;

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

当前位置:首页 > 人文社科

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

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