延安大学西安创新学院理工系
C语言程序设计习题
puts(s); }
delspace(char *p) {
int i, t; char c[80]; for(i=0, t=0;【1】; i++)
if(!isspace(【2】)) c[t++]=p[i]; c[t]=‘\\0‘; strcpy(p,c); }
A) p[i] B) !p[i] C) p[i]=‘\\0‘ D) p[i]==‘\\0‘ A) p+i B) *c[i] C) *(p+i) D) *(c+i) 9.43下面程序以功能是将字符串s中的内容按逆顺输出,但不改变串中的内容,请选择填空。
#include
char s[10]=‖hello!‖; inverp(s); }
inverp( char *s) {
if(【1】) return 0; inverp(a+1);
printf(―%c‖, 【2】)_; }
【1】 A) *a!=‘\\0‘ B) *a!=NULL C) !*a D) !a*==0 【2】 A) *(a-1) B) *a C) *(a+1) D) *(a--) 9.44下面程序的功能是用递归法将一个整数存放到一个字符数组中。存放时按逆顺存放。如
483存放成384,请填空。 #include
void convert(char *a, int n) {
int i;
if((i=n/10)!=0) convert(【1】, i); *a=【2】; }
main( ) {
int number; char str[ ]=‖ ‖; scanf(―%d‖, &number); convert(str, number); puts(str); }
【1】 A) a++ B) a+1 C) a-- D) a-1
C语言精品课程项目组
9
延安大学西安创新学院理工系
C语言程序设计习题
【2】 A) n/10 B) n C) n/10+10 D) n+‘0‘
9.45下面程序的功能是用递归法将一个整数转换成字符形式输出。例如输入483,应输出相
应字符串483。请填空。 #include
int i;
if((【1】)!=0) convert(i); putchar(【2】+‘0‘); }
main( ) {
int number; scanf(―%d, &number); if(number<0) { puchar(?-‘); number= -number;} convert(number); }
【1】 A) i=n/10 B) i=n C) i=n-- D) i=--a 【2】 A) n B) n/10 C) n D) i
9.46下面程序的是按字典顺序比较两个字符串s,t的大小,如果s大于t则返回正值,等于
则返回0,小于则返回负值。请选择填空。 #include ―stdio.h‖ s(char *s, char *t)] {
for(; *s==*t; 【1】) if(*s==‘\\0‘) return (0); retrun(*s-*t); }
main ( ) {
char a[20], b[20], *p, *q; int i;
p=&a; q=&b; scanf(―%s%s‖, a, b); i=s(【2】); printf(―%d‖, i); }
【1】A) s++ B) t++ C) s++; t++ D) t++, s++ 【2】A) p, q B) q, p C) a, p D) b, q 9.47下面程序的功能是从键盘接收一个字符串,然后按字符顺序从小到大进行排序,并删除
重复的字符。请选择填空。 #include
char string[100], *p, *q, * r, c; printf(―Pleast input a string:‖);
C语言精品课程项目组
10
延安大学西安创新学院理工系
C语言程序设计习题
gets(string);
for(p=string; *p; p++) {
for(q=r=p; *q; q++) if(【1】) r=q; if(【2】) { c=*r; *r=p;*p=c; }
}
for(p=string; *p; p++) { for(q=p; *p==*q; q++); string(【3】,q); } printf(―result: %s\\n‖, string);
} 【1】 A) *r>*q B) *r>*p C) r>q D) r>p 【2】 A) r==q B) r!=q C) p!=q D) r!=p 【3】 A) p++ B) p C) p-1 D) p+1 9.48下面程序的功能是将字符串a中的所有字符传送到字符串b中,要求每传三个字符后再
存放一个空格,例如字符串a为“abcdefg‖,则字符串b为“abc def g”,请选择填空。 #include
int i, k=0;
char a[80], b[80], *p; p=a; gets(p); while(*p) {
for(i=1; 【1】;p++, k++, i++) b[k]=*p;
if(【2】) { b[k]=? ‘; k++; } }
b[k]=‘\\0‘; puts(b); } 【1】 A) i<3 B) i<=3 C) i<3&&*p!=0 D) i<=2&&*p 【2】 A) i==4 B) *p==‘\\0‘ C) !*p D) i!=4
9.49当运行以下程序时,从键盘输入Happy!<回车>,则下面程序的运行结果是____。
#include
char str[10], *p=str;
gets(p); printf(―%d\\n‖, stre(p)); }
stre(char str[ ]) {
C语言精品课程项目组
11
延安大学西安创新学院理工系
C语言程序设计习题
int num=0; while(*(str+num)!=‘\\0‘) num++; return (num);
}
【1】 A) 7 B) 6 C) 5 D)10 9.50以下程序的运行结果是____。
#include
static char a[ ]= ―Language‖, b[ ]=programme‖; char *p1, *p2; int k; p1=a; p2=b; for(k=0; k<=7; k++)
if(*(p1+k)==*(p2+k)) printf(―%c‖, *(p1+k)); }
A) gae B) ga C) Language D) 有语法错误 9.51下面程序的运行结果是____。
#include
int a=28, b; char s[10], *p;
p=s; do {
b=a; if(b<10) *p=b+48; else *=b+55; p++; a/=5; }while(a>0); *p=‘\\0‘; puts(s); }
A) 10 B) C2 C) C51 D) \\0
9.52下面程序的运行结果是____。
#include
int i, j; char *a; a=s;
for(i=0, j=0; a[i]!=‘\\0‘; i++)
if(a[i]>=‘0‘&&a[i]<=‘9‘) { s[j]=a[i]; j++; } s[j]=‘\\0‘;
} main( ) {
char *item= ―a34bc‖; delch(item);
printf(―\\n%s‖, item);
C语言精品课程项目组
12

