已有fun函数的声明为char fun(char *s1,char s2);,且main函数中已有声明char str1[80]="hello", str2[ ]="h",c; 以下语句出现在main函数中,其中错误的是。
A. c=fun(str1,str2[0]);
B. c=fun(str1,*str2);
C. c=fun(&str1[0],str2[0]);
D. c=fun("hello","h");
查看答案
有以下定义:char s[20]="programming",*ps=s;则不能代表字符'o'的表达式是。
A. s+=2,*s
B. s[2]
C. ps[2]
D. ps+=2,*ps
已有声明char s1[5],*s2="Hello World";,能实现“将s2指向的字符串中最后4个字符组成的子串复制到s1数组”功能的语句是。
A. s1=s2+strlen(s2)-3;
B. s1[0]=s2[strlen(s2)-3];
C. strcpy(s1[0],s2[strlen(s2)-3]);
D. strcpy(s1,s2+strlen(s2)-4);
已知main函数中有声明int a=3,b=4;,若在main函数中通过执行语句swap(&a,&b);交换a,b的值,则下列swap函数定义正确的是。
A. void swap(int x,int y) {int t; t=x;x=y; y=t;}
B. void swap(int *x,int *y) {int t; t=*x;*x=*y; *y=t;}
C. void swap(int *x,int *y) {int *t; t=x;x=y; y=t;}
D. void swap(int *x,int *y) {int *t; t=*x;*x=*y; *y=t;}
以下程序的输出结果是。#include void sub(int *s,int y){static int t=3;y=s[t];t--;}int main (){int a[ ]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");return 0;}
A. 1234
B. 4321
C. 0000
D. 4444