★第1 题:阅读程序,选择程序的运行结果___A___。
#include <>main(){ int x;x=try(5);printf(“%d\n”, x);}try(int n){ if(n>0) return(n*try(n-2));else return(1);}A. 15B. 120C. 1D. 前面3个答案均是错误的第2 题:在下列结论中,只有一个是正确的,它是___A___。
A. 递归函数中的形式参数是自动变量B. 递归函数中的形式参数是外部变量C. 递归函数中的形式参数是静态变量D. 递归函数中的形式参数可以根据需要自己定义存储类型★第3 题:阅读程序,选择程序的输出结果__A___。
#include <>f(int x, int y){ return(y-x);}main(){ int (*g)(int,int);int a=5, b=6, c=2;g=f;c=(*g)(a,b);printf(“%d\n”, c);}A. 1B. 2C. 3D. 前面3个答案均是错误的第4 题:阅读程序,选择程序的输出结果__D___。
#include <>char *p=”abcdefghijklmnopq”;main(){ while(*p++!=’e’) ;printf(“%c\n”, *p);}A. cB. dC. eD. f★第6 题:阅读程序,选择程序的输出结果___D___。
#include <>void prtv(int *x){ printf(”%d\n”, ++*x);}main(){ int a=25;prtv(&a);}A. 23B. 24C. 25D. 26第7 题:阅读程序,选择程序的输出结果___B___。
#include <>main(){ static char a[ ]= ”language”, b[]=”program”;char *ptr1=a, *ptr2=b;int k;for(k=0; k<7; k++)if(*(ptr1+k)==*(ptr2+k))printf(”%c”, *(ptr1+k));}A. gaeB. gaC. languageD. 有语法错误★第8 题:函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。
A. 将串str1复制到串str2中,然后再连接到str3之后B. 将串str1连接到串str2之后,再复制到str3之中C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后D. 将串str2复制到串str1中,再将串str1连接到str3之后★第9 题:设有以下程序段,则在main函数中使用语句__D___是无意义的。
main(){ int min();int a, b, c, (*p)();p=min;…}min(x, y)int x, y;{…}A. printf(”%d\n”, min(a,b));B. c=min(a, b);C. c=(*p)(a,b);D. p++;第10 题:已知static int a[2][3]={2,4,6,8,10,12}; 正确表示数组元素地址的是__A___。
A. *(a+1)B. *(a[1]+2)C. a[1]+3D. a[0][0]第11 题:已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是___C___。
A. i=*(*(x+1)+1)B. i=x[1][1]C. i=*(*(x+1))D. i=*(x[1]+1)★第12 题:当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是___C____.A. c=b=a;B. (a=c)||(b=c);C. (a=c)&&(b=c);D. a=c=b;第13 题:函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。
能正确执行此功能的函数是___D___。
A. funa(int *x, int *y){ int *p;*p=x; *x=*y; *y=*p;}B. funb(int x, int y){ int t;t=x; x=y; y=t;}C. func(int *x, int *y){ *x=*y; *y=*x;}D. fund(int *x, int *y){ *x=*x+*y; *y=*x-*y; *x=*x-*y;}第14 题:已知int x[]={1,3,5,7,9,11}, *ptr=x; 则不能正确引用数组元素的语句是___B___。
A. *(ptr--)B. *(--ptr)C. *(ptr++)D. *(++ptr)第15 题:已知int *ptr1, *ptr2; 均指向同一个int类型一维数组中的不同元素,k为int类型变量,则下面错误的赋值语句是___B___。
A. k=*ptr1+*ptr2;B. ptr2=k;C. ptr1=ptr2;D. k=*ptr1*(*ptr2);★第16 题:已知chars1[10], *s2=”ab\0cdef”; 则执行语句strcpy(s1,s2); 后,变量s1的内容为___A____。
A. abB. cdefC. ab\0cdefD. 内容不定第17 题:以下有关宏替换叙述中,错误的是___D___。
A. 宏替换不占用运行时间B. 宏无类型名C. 宏替换只是字符替换D. 宏名必须用大写字母表示★第18 题:C语言主函数main最多允许有___B___个参数。
A. 1B. 2C. 0D. 3★第19 题:C语言的编译系统对宏定义是___D___。
A. 在程序运行时进行替换处理B. 在程序连接时进行处理C. 和源程序中其他C语句同时进行编译的D. 在对源程序中其他成分正式编译之前进行处理的第20 题:已知int **p; 则变量p是___B___。
A. 指向int的指针B. 指向指针的指针C. int型变量D. 以上3种说法均是错误的★第21 题:已知int i; char *s=”a\045+045\’b”; 执行语句for(i=0; *s++; i++); 之后,变量i的结果是__B___。
A. 7B. 8C. 9D. 以上3个答案都是错误的第22 题:已知int i=0, j=1, *p=&i, *q=&j; 错误的语句是___D___。
A. i=*&j;B. p=&*&i;C. j=*p++;D. i=*&q;第23 题:已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a; 则值为3的表达式是___A___。
A. p+=2, *(p++)B. p+=2, *++pC. p+=3, *p++D. p+=2, ++*p★第24 题:已知int a[3][4], *p=a; p+=6; 那么*p和__D___的值相同。
A. *(a+6)B. *(&a[0]+6)C. *(a[1]+2)D. *(&a[0][0]+6)第25 题:已知int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a, *p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是__D___。
A. *((ptr+1)[2])B. *(*(p+5))C. (*ptr+1)+2D. *(*(a+1)+2)第26 题:已知char **s; 正确的语句是__B___。
A. s=”computer”;B. *s=”computer”;C. **s=”computer”;D. *s=’A’;★第27 题:已知char s[20]= ”programming”, *ps=s; 则不能引用字母o的表达式是__A___。
A. ps+2B. s[2]C. ps[2]D. ps+=2, *ps第28 题:已知char b[5], *p=b; 则正确的赋值语句是__C__。
A. b=”abcd”;B. *b=”abcd”;C. p=”abcd”;D. *p=”abcd”;★第29 题:已知char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是___D___.A. s[i+10]B. *(s+i)C. *(i+s)D. *((s++)+i)第30 题:已知char s[10], *p=s; 则下列语句中,错误的语句是__B___。
A. p=s+5;B. s=p+s;C. s[2]=p[4]D. *p=s[0];第31题:(103)以下程序的输出结果是___D___。
#include <>main(){int x=10, y=10;printf(“%d %d\n”, x--, --y);}A. 10 10B. 9 9C. 9 10D. 10 9第32 题:已知double *p[6]; 它的含义是___C___。
A. p是指向double类型变量的指针B. p是double类型数组C. p是指针数组D. p是数组指针★第33 题:说明语句int *(*p)(); 的含义是___D___。
A. p是一个指向int型数组的指针B. p是指针变量,它构成了指针数组C. p是一个指向函数的指针,该函数的返回值是一个整型D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针第34 题:已知int a, *p=&a; 则下列函数调用中错误的是___D___。
A. scanf(”%d”, &a);B. scanf(”%d”, p);C. printf(”%d”, a);D. printf(”%d”, p);第35 题:已知int *p, a; 则语句p=&a; 中的运算符&的含义是___D___。
A. 位与运算B. 逻辑与运算C. 取指针内容D. 取变量地址第36 题:下面程序的功能是将字符串s中所有的字符“c”删除。
请选择填空。
# include <>main(){ char s[80];int i, j;gets(s);for(i=j=0; s[i]!=’\0’; i++)if(s[i]!=’c’) ___A____s[j]!=’\0’;puts(s);}A. s[j++]=s[i];B. s[++j]=s[i];C. s[j]=s[i]; j++;D. s[j]=s[i]第37 题:阅读下列程序,选择程序的运行结果___B___。