1.下述程序段的输出结果是〔〕。答:A int x=10;
int y=x++;
printf(“%d,%d〞,(x++,y),y++);
A. 11,10
B. 11,11
C. 10,10
D. 10,11
2. 下述程序的作用是删除字符串s中的所有空格。请在每组中选择正确的答案。
#include<stdio.h> 答:〔1〕A,〔2〕B,〔3〕C #include<ctype.h>
void delspace(char *s)
{char *I;
int t;
for(I=s,t=0; (1) ; I++)
if( ! isspace( (2) ) ) /*isspace函数用来判断某个字符是否为空格*/
(1) = *I;
*s=’\0’;}
main()
{char s[81]= “S_t_r_i_n_g〞; /*_表示空格*/
delspace(s);
puts(s);}
〔1〕A. *I    B. !*I    C. *I!=’\n’  D. **I
〔2〕A. *s    B. *I    C.*I++    D. *s++
〔3〕A. *s    B. *++s    C. *s++    D. s(I-1)
3. 下述语句中,〔〕可以在字符串s1和s2相等时显示〞Equal〞。答:B
A. if(s1==s2) puts(〞Equal〞);
B. if(!strcmp(s1,s2)) puts(〞Equal〞);
C. if(*s1==*s2) puts(〞Equal〞);
D. if(strcmp(s1,s2)) puts(〞Equal〞);
4. 下述程序的运行结果实〔〕。答:A void sub(int *s,int *y)
{static int t=3;
*y=s[t]; t--;}
main()
{int a[]={1,2,3,4},k,x;
for(k=0;k<4;k++)
{sub(a,&x); printf(“%d〞,x);}}
A. 4,3,2,1
B. 1,2,3,4
C. 0,0,0,0
D. 4,4,4,4
5. 假设有如下说明和语句,且0<t<10那么〔〕是对数组元素地址的正确表示。答:D
int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,t;
p=a;
A. &(a+1)
B. a++
printf怎么输出字符串的一部分
C. &p
D. &p[t]
6. 以下函数在一维数组v上把x插入下标为I的元素之前,I≥0。假设I大于等于元素个数那么在末尾。原有的元素个数存放在指针n所值的变量中,插入后元素个数增1。请在空白处填空。
void insline(double v[ ],int *n,double x,int I)
{ int j;
if( (1) )
for(j=*n-1; (2) ; j--)
(3) =v[j];
else I=*n;
v[I]= (1) ;
(*n)++;} 答:(1) I<*n (2) j>=I (3) v[j+1] (4) x 7. 以下程序的执行结果是〔〕。答:D f(int a)
{int b=0;
static c=3;
a=c++,b++;
return(a);}
main()
{int a=2,I,k;
for(I=0;I<2;I++)
k=f(a++);
printf(“%d\n〞,k);}
A. 3
B. 0
C. 5
D. 4
8. 下面函数的功能是〔〕。答:A int fun1(char *x)
{char *y=x;
while(*y++);
return(y-x-1);}
A. 求字符串的长度
B. 求字符串存放的位置
C. 比较两个字符串的大小
D. 将字符串x连接到字符串y后面
9. 已定义char b[5],*p=b; 选择出正确的赋值语句〔〕。答:C
A. b=〞abcd〞;
B. *b=〞abcd〞;
C. p=〞abcd〞;
D. *p=〞abcd〞;
10. 下面程序的输出结果是。
long fun5(int n)
{long s;
if( (n==1)||(n==2) ) s=2;
else s=n+fun5(n-1);
return(s);}
main()
{long x;
x=fun5(4);
printf(“%ld\n〞,x);} 答:9
11. 用以下程序求出a数组中所有素数的和,函数isprime用来判断变量是否为素数。main()
{int I,a[10],*p=a,sum=0;
for(I=0;I<10;I++)
scanf(“%d〞,&a[I]);
for(I=0;I<10;I++)
if( isprime( *(p+ (1) ) )==1 )
{printf(“%d〞, *(a+I) );
sum+=*(a+I);
}
printf(“%d\n〞,sum);
}
isprime(int x)
{int I;
for(I=2;I<=x/2;I++)
if(x%I==0) return(0);
(1) ;
} 答:(1) I (2) return(1) 12. 假设有以下说明和语句,且0≤I<10,那么〔〕是对数组元素的错误引用。答:C
int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,I;
p=a;
A. *(a+I)
B. a[p-a]
C. p+I
D. *(&a[I])
13. 以下程序段的结果是〔〕。答:B static char a[ ]=〞Program〞;
char *ptr=a;
for(ptr=a; ptr<a+7; ptr+=2)
putchar(*ptr);
A. Program
B. Porm
C. 有语法错误
D. Por
14. 下面程序的输出结果是〔〕。答:D main()
{int a[ ]={1,2,3,4,5,6},*p=a;
*(p+3)+=2;
printf(“%d,%d\n〞,*p,*(p+3) );}
A. 0,5
B. 1,5
C. 0,6
D. 1,6
15. 以下程序运行结果为〔〕。答:D main()
{int n[3],I,j,k;
for(I=0; I<3; I++)
n[I]=0;
k=2;
for(I=0; I<k; I++)
for(j=0; j<k; j++)
n[j]=n[I]+1;
printf(“%d\n〞,n[1]);
}
A. 2
B. 1
C. 0
D. 3
16. 阅读程序,写出输出结果。
main()
{static int a[ ][3]={{1,2,3},{4,5},{7}};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int **pp=pa;
printf(“%d\n〞,*a[1]); 输出为(1)
printf(“%d\n〞,*(*(a+1)+1) ); 输出为(2)
printf(“%d\n〞,*pa[1]); 输出为(3)
printf(“%d\n〞,p[1]); 输出为(4)
printf(“%d\n〞,pp[2][1]); 输出为(5)
} 答:(1) 4 (2) 5 (3) 4 (4) 2 (5) 0 17. 下面程序的输出结果是〔〕。答:A main()
{int k=4,m=1,p
p=func(k,m);
printf(“%d〞,p++);
p=func(k,m);
printf(“%d〞,p++);
}
fun(int a,int b)
{static m,I=2;
I+=m+1;
m=I+a+b;
return(m);}
A. 8,17
B. 8,16
C. 8,20
D. 8,8

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。