C语言精彩试题选择题及问题详解.docx

上传人:b****5 文档编号:3226747 上传时间:2022-11-20 格式:DOCX 页数:30 大小:25.72KB
下载 相关 举报
C语言精彩试题选择题及问题详解.docx_第1页
第1页 / 共30页
C语言精彩试题选择题及问题详解.docx_第2页
第2页 / 共30页
C语言精彩试题选择题及问题详解.docx_第3页
第3页 / 共30页
C语言精彩试题选择题及问题详解.docx_第4页
第4页 / 共30页
C语言精彩试题选择题及问题详解.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言精彩试题选择题及问题详解.docx

《C语言精彩试题选择题及问题详解.docx》由会员分享,可在线阅读,更多相关《C语言精彩试题选择题及问题详解.docx(30页珍藏版)》请在冰豆网上搜索。

C语言精彩试题选择题及问题详解.docx

C语言精彩试题选择题及问题详解

★第1题:

阅读程序,选择程序的运行结果___A___。

#include

main()

{intx;

x=try(5);

printf(“%d\n”,x);

}

try(intn)

{if(n>0)return(n*try(n-2));

elsereturn

(1);

}

 A. 15

 B. 120

 C. 1

 D. 前面3个答案均是错误的

第2题:

在下列结论中,只有一个是正确的,它是___A___。

 A. 递归函数中的形式参数是自动变量

 B. 递归函数中的形式参数是外部变量

 C. 递归函数中的形式参数是静态变量

 D. 递归函数中的形式参数可以根据需要自己定义存储类型

★第3题:

阅读程序,选择程序的输出结果__A___。

#include

f(intx,inty)

{return(y-x);

}

main()

{int(*g)(int,int);

inta=5,b=6,c=2;

g=f;

c=(*g)(a,b);

printf(“%d\n”,c);

}

 A. 1

 B. 2

 C. 3

 D. 前面3个答案均是错误的

第4题:

阅读程序,选择程序的输出结果__D___。

#include

char*p=”abcdefghijklmnopq”;

main()

{while(*p++!

=’e’);

printf(“%c\n”,*p);

}

 A. c

 B. d

 C. e

 D. f

★第6题:

阅读程序,选择程序的输出结果___D___。

#include

voidprtv(int*x)

{printf(”%d\n”,++*x);

}

main()

{inta=25;

prtv(&a);

}

 A. 23

 B. 24

 C. 25

 D. 26

 

第7题:

阅读程序,选择程序的输出结果___B___。

#include

main()

{staticchara[]=”language”,b[]=”program”;

char*ptr1=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptr1+k)==*(ptr2+k))

printf(”%c”,*(ptr1+k));

}

 A. gae

 B. ga

 C. language

 D. 有语法错误

★第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()

{intmin();

inta,b,c,(*p)();

p=min;

}

min(x,y)

intx,y;

{

}

 A. printf(”%d\n”,min(a,b));

 B. c=min(a,b);

 C. c=(*p)(a,b);

 D. p++;

第10题:

已知staticinta[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是__A___。

 A. *(a+1)

 B. *(a[1]+2)

 C. a[1]+3

 D. a[0][0]

第11题:

已知inti,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(intx,inty)

{intt;

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题:

已知intx[]={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. ab

 B. cdef

 C. ab\0cdef

 D. 内容不定

第17题:

以下有关宏替换叙述中,错误的是___D___。

 A. 宏替换不占用运行时间

 B. 宏无类型名

 C. 宏替换只是字符替换

 D. 宏名必须用大写字母表示

★第18题:

C语言主函数main最多允许有___B___个参数。

 A. 1

 B. 2

 C. 0

 D. 3

★第19题:

C语言的编译系统对宏定义是___D___。

 A. 在程序运行时进行替换处理

 B. 在程序连接时进行处理

 C. 和源程序中其他C语句同时进行编译的

 D. 在对源程序中其他成分正式编译之前进行处理的

第20题:

已知int**p;则变量p是___B___。

 A. 指向int的指针

 B. 指向指针的指针

 C. int型变量

 D. 以上3种说法均是错误的

★第21题:

已知inti;char*s=”a\045+045\’b”;执行语句for(i=0;*s++;i++);之后,变量i的结果是__B___。

 A. 7

 B. 8

 C. 9

 D. 以上3个答案都是错误的

第22题:

已知inti=0,j=1,*p=&i,*q=&j;错误的语句是___D___。

 A. i=*&j;

 B. p=&*&i;

 C. j=*p++;

 D. i=*&q;

第23题:

已知inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式是___A___。

 A. p+=2,*(p++)

 B. p+=2,*++p

 C. p+=3,*p++

 D. p+=2,++*p

★第24题:

已知inta[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题:

已知inta[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)+2

 D. *(*(a+1)+2)

第26题:

已知char**s;正确的语句是__B___。

 A. s=”computer”;

 B. *s=”computer”;

 C. **s=”computer”;

 D. *s=’A’;

★第27题:

已知chars[20]=”programming”,*ps=s;则不能引用字母o的表达式是__A___。

 A. ps+2

 B. s[2]

 C. ps[2]

 D. ps+=2,*ps

第28题:

已知charb[5],*p=b;则正确的赋值语句是__C__。

 A. b=”abcd”;

 B. *b=”abcd”;

 C. p=”abcd”;

 D. *p=”abcd”;

★第29题:

已知chars[100];inti;则在下列引用数组元素的语句中,错误的表示形式是___D___.

 A. s[i+10]

 B. *(s+i)

 C. *(i+s)

 D. *((s++)+i)

第30题:

已知chars[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()

{

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

}

 A. 1010

 B. 99

 C. 910

 D. 109

第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题:

已知inta,*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()

{chars[80];

inti,j;

gets(s);

for(i=j=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1