C语言试题选择题及答案.docx

上传人:b****5 文档编号:6715619 上传时间:2023-01-09 格式:DOCX 页数:30 大小:24.99KB
下载 相关 举报
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语言试题选择题及答案

CompanyDocumentnumber:

WTUT-WT88Y-W8BBGB-BWYTT-19998

 

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;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___。

#include<>

main()

{inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++)

a[i]=i;

for(i=0;i<3;i++)

p[i]=a[i*(i+1)];

for(i=0;i<3;i++)

k+=p[i]*2;

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

}

 A. 20

 B. 21

 C. 22

 D. 23

★第38题:

下述程序的输出结果是__A___。

#include<>

main()

{printf(“%f”,+1*7%2/4);

}

 A. 

 B. 

 C. 

 D. 

★第39题:

下面程序的输出结果是___B___。

#include<>

main()

{printf(“%d\n”,NULL);

}

 A. -1

 B. 0

 C. 1

 D. 程序是错误的

第40题:

在下面的程序段中,每行前面的数字表示行号,则下面程序___D___。

1main()

2{

3inta[3];

4inti;

5for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6for(i=1;i<3;i++)a[0]=a[0]+a[i];

7printf(“%f\n”,a);

8}

 A. 没有错误

 B. 第5行有错误

 C. 第6行有错误

 D. 第7行有错误

★第41题:

在下面的程序段中,每行前面的数字表示行号,则下面程序___C___。

1main()

2{

3floata[10];

4inti;

5for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6for(i=1;i<3;i++)a[0]=a[0]+a[i];

7printf(“%f\n”,a[0]);

8}

 A. 没有错误

 B. 第3行有错误

 C. 第5行有错误

 D. 第7行有错误

★第42题:

下面程序段的运行结果是__B__。

charc[]=”\t\v\\\0will\n”;

printf(“%d”,strlen(c));

 A. 14

 B. 3

 C. 9

 D. 字符串中有非法字符,输出值不确定

第43题:

下面程序段的运行结果是___D___(其中~表示空格)。

chara[7]=”abcdef”,b[4]=”ABC”;

strcpy(a,b);

printf(“%c”,a[5]);

 A. ~

 B. \0

 C. e

 D. f

第44题:

若要求:

如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用___D___。

 A. if(s1>s2)

 B. if(strcmp(s1>s2))

 C. if(strcmp(s2>s1)>0)

 D. if(strcmp(s1>s2)>0)

第45题:

已知chara[20],b[20];则以下正确的输入语句是___B___。

 A. gets(a,b);

 B. scanf(“%s%s”,a,b);

 C. scanf(“%s%s”,&a,&b);

 D. gets(“a”),gets(“b”);

第46题:

若二维数组a由m列,则在a[i][j]之前的元素个数为___B____。

 A. j*m+i

 B. i*m+j

 C. i*m+j-1

 D. i*m+j+1

第47题:

下列数组说明语句中错误的是___B___。

 A. doublex[5]={,,,,};

 B. inty[5]={0,1,3,5,7,9};

 C. charc1[]={’1’,’2’,’3’,’4’,’5’};

 D. charc2[]={’\x10’,’\xa’,’\x8’};

第48题:

在C语言中,二维数组元素在内存中的存放顺序是__A___。

 A. 按行存放

 B. 按列存放

 C. 由用户自己定义

 D. 由编译器决定

★第49题:

已知staticinta[3][4];则数组a中个元素__B___。

 A. 可在程序的运行阶段得到初值0

 B. 可在程序的编译阶段得到初值0

 C. 不能得到确定的初值

 D. 可在程序的编译或运行阶段得到初值0

★第50题:

语句typedeflongclass的作用是___D___。

 A. 建立了一种新的数据类型

 B. 定义了一个整型变量

 C. 定义了一个长整型变量

 D. 定义了一个新的数据类型标识符

第51题:

已知staticinta[3][4]={0};则下面正确的叙述是__D___。

 A. 只有元素a[0][0]可以得到初值0

 B. 此说明语句是错误的

 C. 数组a中每个元素都可得到初值,但其值不一定为0

 D. 数组a中每个元素均可得到初至0

第52题:

以下能对外部的二维数组a进行初始化错误的语句是___C___。

 A. inta[2][3]={0};

 B. inta[][3]={{1,2},{0}};

 C. inta[2][3]={{1,2},{3,4},{5,6}};

 D. inta[][3]={1,2,3,4,5,6};

★第53题:

以下能对外部的二维数组a进行正确初始化的语句是__B___。

 A. inta[2][]={{1,0,1},{5,2,3}};

 B. inta[][3]={{1,2,3},{4,5,6}};

 C. inta[2][4]={{1,2,3},{4,5},{6}};

 D. inta[3][]={{1,0,1},{},{1,1}};

★第54题:

(105)

为了求i的3次方,请选择一个表达式填入___D____,使程序可以正确执行。

#defineCUBE(x)(x*x*x)

main()

{inti=4;

print(“\n%d”,CUBE());

}

 A. i*i*i

 B. x*x*x

 C. x

 D. i

第55题:

已知inta[10];则对a数组元素的正确引用是__D___。

 A. a[10]

 B. a[]

 C. a(5)

 D. a[10-10]

★第56题:

在C语言中,引用数组元素时,其数组下标的数据类型允许是__C___。

 A. 整型常量

 B. 整型表达式

 C. 整型常量或整型表达式

 D. 任何类型的表达式

★第57题:

已知charstr[]=”ab\n\012\\\””;则执行语句:

printf(“%d”,strlen(str));的结果是___C____.

 A. 3

 B. 4

 C. 6

 D. 12

第58题:

下面关于字符串的说明中,错误的是__A___。

 A. charstr[7]=”FORTRAN”;

 B. charstr[]=”FORTRAN”;

 C. char*str=”FORTRAN”;

 D. charstr[]={’F’,’O’,’R’,’T’,’R’,’A’,’N’,’\0’};

第59题:

以下程序段的输出是___A____。

staticchara[]=“-12345”;

intk=0,symbol,m;

if(a[k]==’+’||a[k]=’-’)

symbol=(a[k++]==’+’)1:

-1;

for(m=0;a[k]>=’0’&&a[k]<=’9’;k++)

m=m*10+a[k]-‘0’;

printf(“number=%d\n”,symbol*m);

 A. number=-12345

 B. number=12345

 C. number=-10000

 D. number=10000

第60题:

已知charstr1[10],str2[10]={“books”};则在程序中能够将字符串“books”赋给数组str1的正确语句是___B___。

 A. str1={“books”};

 B. strcpy(str1,str2);

 C. str1=str2

 D. strcpy(str2,str1);

★第61题:

若有以下语句,则正确的描述是___B___。

staticcharx[]=“12345”;

staticchary[]={‘1’,‘2’,‘3’,‘4’,‘5’};

 A. x数组和y数组的长度相同

 B. x数组长度大于y数组长度

 C. x数组长度小于y数组长度

 D. x数组等价于y数组

第62题:

在下述对C语言字符数组的描述中错误的是___C___。

 A. 字符数组可以存放字符串

 B. 字符数组中的字符串可以进行整体输入/输出

 C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

 D. 字符数组的下标从0开始

第63题:

要说明一个有10个int元素的数组,应当选择语句___A____。

 A. inta[10];

 B. inta[2,5];

 C. inta[];

 D. int*a[10];

★第64题:

已知chars[5],c;registercharb;则调用函数scanf的正确语句是___D___。

 A. scanf(“%s%c”,s,c);

 B. scanf(“%d%c”,&b,&c);

 C. scanf(“%d%c”,b,&c);

 D. scanf(“%s%c”,s,&c);

第65题:

错误的说明语句是__D___。

 A. staticcharword[]={‘T’,‘u’,‘r’,‘b’,‘o’,‘\0’};

 B. staticcharword[]={“Turbo\0”};

 C. staticcharword[]=“Turbo\0”;

 D. staticcharword[]=‘Turbo\0’;

★第66题:

请选择下列程序的运行结果___A___。

#include<>

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf(“%d”,d);

}

main()

{inta=3;

fun(a);

d+=a++;

printf(“%d”,d);

}

 A. 84

 B. 96

 C. 94

 D. 85

第67题:

请选择下列程序的运行结果__D___。

#include<>

try()

{staticintx=3;

x++;

return(x);

}

main()

{inti,x;

for(i=0;i<=2;i++)

x=try();

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

}

 A. 3

 B. 4

 C. 5

 D. 6

★第68题:

请选择下列程序的运行结果___C___。

#include<>

fun(int*p)

{inta=10;

*p=a;

++a;

}

main()

{inta=5;

fun(&a);

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

}

 A. 5

 B. 6

 C. 10

 D. 11

★第69题:

以下错误的描述为__C___。

 A. 在函数之外定义的变量称为外部变量,外部变量是全局变量

 B. 在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量

 C. 外部变量定义和外部变量声明的含义相同

 D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。

★第70题:

在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是___D___。

 A. extern

 B. register

 C. auto

 D. static

★第71题:

C语言中,对于存储类型为___D___的变量,只有在使用它们时才占用内存单元。

 A. static和auto

 B. register和extern

 C. 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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