C语言上机题库百科园南信大.docx
- 文档编号:8124863
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:12
- 大小:29.77KB
C语言上机题库百科园南信大.docx
《C语言上机题库百科园南信大.docx》由会员分享,可在线阅读,更多相关《C语言上机题库百科园南信大.docx(12页珍藏版)》请在冰豆网上搜索。
C语言上机题库百科园南信大
第六章
)。
单选若已定义chars[10];则在下面表达式中不表示s[1]的地址是(
A.&s[1]
B.&s[0]+1
C.s+1
D.
s++
p=a;
while(*p!
='u'){printf(
%c”,*p-32);p++;}
A.language
B.langUAGE
C.LANGUAGE
D.LANG
面能正确进行字符串赋值操作的是()
A.chars[5]={'A','B','C','D','E'};
B.chars[5]={"ABCDE"};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",s);
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是
A.p2=c;
B.c=*p1+*p2;
C.p1=p2;
D.
已有函数max(a,b),
c=*p1*(*p2);
为了让函数指针变量P指向函数max正确的赋值方法是()
A.*p=max(a,b);
B.*p=max;
C.p=max;
D.p=max(a,b);
以下正确的叙述是(
)。
A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定
B.
则argc的值必须大于1
当main函数带有形参时,传给形参的值只能从命令行中得到
C.若有说明:
intmain(intargc,char**argv),
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.字符'c'
面判断正确的是()。
A.charstr[10]={"china"};
等价于charstr[10];str[]={"china";}
B.charc[4]="abc",d[4]="abc";
等价于charc[4]=d[4]="abc";
C.char*a="china";等价于
char*a;*a="china";
D.char*s="china";等价于
char*s;s="china";
设有程序段:
chars[]=”china”;char*p;p=s;则下面叙述正确的是(
A.数组s中的内容和指针变量p中的内容相等
B*p与s[0]相等
C.S数组长度和P所指向的字符串长度相等
D.s和P完全相同
面函数的输出结果是()
已有变量定义和函数调用语句:
inta=25;print_value(&a);
voidprint_value(int*x)
{printf(“%dn”,++*x);}
A.24
B.23
C.25
D.26
若有说明:
int*p,m=5,n;以下程序段正确的是()
A.p=&n;*p=m;
B.p=&n;scanf("%d",&p);
C.p=&n;scanf("%d",*p);
D.scanf("%d",&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"。
回文是指顺读和倒读都一样的字符串。
例如,字符串LEVE是回文,而字符串123312就不是回文。
注意:
部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
*/
#include
#defineN80
intfun(charstr[])
/***************Begin************/
/***************End************/
voidmain()
chars[N];
FILE*out;
chartest[][80]={"1234321","123421","123321","abcdCBA"};
inti;
printf("Enterastring:
");
gets(s);
printf("\n\n");
puts(s);
if(fun(s))
printf("YES\n");
else
printf("NO\n");
/************************************/out=fopen("debug\\out12.dat","w");
for(i=0;i<4;i++)
if(fun(test[i]))
fprintf(out,"YES\n");
else
fprintf(out,"NO\n");
fclose(out);
/************************************/
参考代码】
intfun(charstr[])
inti,n=0,fg=1,j=0;
while(str[j])
n++;
j++;
for(i=0;i /* 循环比较字符*/ if(str[i]==str[n-1-i]); /* 相同,什么都不作*/ else /* 不同,直接跳出循环*/ fg=0; break; returnfg; /*请编写函数fun,该函数的功能是: 统计一行字符串中单词的个数,作为函数值返回。 一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #defineN80 intfun(char*s) /************Begin*************/ /*************End*************/voidmain() FILE*wf; charline[N]; intnum=0; printf("Enterastring: \n"); gets(line); num=fun(line); printf("Thenumberofwordis: %d\n\n",num); /******************************/ wf=fopen("d: \\out19.dat","w"); fprintf(wf,"%d",fun("Thisisabigcar")); fclose(wf); /*****************************/ 参考代码】 inti,j=0; for(i=0;s[i]! ='\0';i++) if(s[i]! =''&&(s[i+1]==''||s[i+1]=='\0'))/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/ returnj;/* 返回单词个数*/ j++; /*假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 除了字符串前导的* 号之外,将串中其他*号全部删除。 在编写函数时,不得使用C语言提供的字符串函数。 例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是 ****ABCDEFG。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include /************Begin*************/ /************End**************/voidmain() chars[81]; FILE*in,*out; inti; printf("Enterastring: \n"); gets(s); fun(s); printf("Thestringafterdeleted: \n"); puts(s); /******************************/ in=fopen("in21.dat","r"); out=fopen("debug\\out21.dat","w"); for(i=0;i<8;i++) fscanf(in,"%s",s); fun(s); fprintf(out,"%s\n",s); fclose(in); fclose(out); /******************************/ 参考代码】 inti=0; char*p=a; while(*p&&*p=='*') a[i]=*p;i++;p++; while(*p) if(*p! ='*') a[i]=*p;i++; p++; a[i]='\0'; /*假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 将字符串中的前导* 号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为 ****A*BC*DEF*G*******,删除后,字符串中的内容则应当是 A*BC*DEF*G*******。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语 句。 试题程序: */#include /************Begin**************/ /************End*************/voidmain() FILE*wf,*in; inti; chars[81],t[81]="****A*BC*DEF*G*******"; printf("Enterastring: \n"); gets(s); fun(s); printf("Thestringafterdeleted: \n");puts(s); /******************************/ in=fopen("in18.dat","r"); wf=fopen("debug\\out18.dat","w"); for(i=0;i<8;i++) fscanf(in,"%s",t); fun(t); fprintf(wf,"%s\n",t); fclose(in); fclose(wf); /*****************************/ 参考代码】 char*p=a; while(*p=='*') p++; /*请编一个函数fun(char*s), 该函数的功能是把字符串中的内容逆置。 for(;*p! ='\0';p++,a++) a=*p; *a='\0'; 例如,字符串中原有的字符串为 abcdefg,则调用该函数后,串中的内容为gfedcba。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include #defineN81voidfun(char*s) /************Begin*************/ /************End**************/voidmain() chara[N]; FILE*out; printf("Enterastring: "); gets(a); printf("Theoriginalstringis: "); puts(a); fun(a); printf("\n"); printf("Thestringaftermodified: "); puts(a); strcpy(a,"HelloWorld! ThisisafirstCprogram! "); fun(a); /******************************/ out=fopen("d: \\out17.dat","w"); fprintf(out,"%s",a); fclose(out); /******************************/ 参考代码】 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,其功能是: 将两个两位数的正整数ab合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位依次放在C数的千位和十位上,b数的十位和个位依次放在C数的百位和个位上。 例如,当a=45,b=12,调用该项函数后,c=4152。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(inta,intb,long*c) /************Begin************/ /************End***************/ voidmain() inta,b; longc; FILE*out; printf("Inputa,b: "); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); /******************************/ out=fopen("debug\\out20.dat","w"); for(a=10;a<20;a++) fun(a,109-a,&c); fprintf(out,"%d\n",c); fclose(out); /******************************/ 参考代码】 *c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 题库 百科 园南信大