已有声明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
若有函数定义为int fun(int x,int *y){return (*y)/x;}该函数的函数原型正确的表达是。
A. void fun(int , int);
B. int *fun(int , int *);
C. int fun(int *,int *);
D. int fun(int , int*);
以下程序的输出结果是。#include void prt(int *x,int *y,int *z){printf("%d,%d,%d\n",++*x,++*y,*(z++)); }int a=10,b=40,c=20;int main(){prt(&a,&b,&c);prt(&a,&b,&c);return 0;}
A. 11,41,2012,22,41
B. 11,41,2012,42,20
C. 11,21,4011,21,41
D. 11,41,2112,42,22