c语言.docx

上传人:b****6 文档编号:7953005 上传时间:2023-01-27 格式:DOCX 页数:16 大小:22.35KB
下载 相关 举报
c语言.docx_第1页
第1页 / 共16页
c语言.docx_第2页
第2页 / 共16页
c语言.docx_第3页
第3页 / 共16页
c语言.docx_第4页
第4页 / 共16页
c语言.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言.docx

《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(16页珍藏版)》请在冰豆网上搜索。

c语言.docx

c语言

一、单项选择题

1.执行charstr[10]=''Exa\nme'';strlen(str)的值是(B)

A.5B.6C.7D.9

2.在定义inta[3][4][2];后,第10个元素是(B)

A.a[2][1][2]B.a[1][0][1]C.a[2][0][1]D.a[2][2][1]

3.在C语言中,逻辑值“真”是用(B)表示的。

A.预定义为真值的宏B.非零数C.正数D.非零整数

4.C语言源程序的基本单位是(B)

A.过程B.函数C.子程序D.标识符

5.编辑程序的功能是(A)

A.建立并修改程序B.将C源程序编译为目标程序

C.调试程序D.执行指定的操作

6.下面4组中,哪一组全都是C语言保留的关键字(B)

A.int、char、printfB.short、long、while

C.static、string、sizeofD.if、while、new

7.以下选项中属于C语言的数据类型是(D)。

A.复数型B.逻辑型C.集合型D.双精度型

8.一个C程序的执行是从(A)。

A.main()函数开始,直到main()函数结束

B.第一个函数开始,直到最后一个函数结675F

C.第一个语句开始,直到最后一个语句结束

D.main()函数开始,直到最后一个函数结束

9.设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是(C)。

A.3B.0    C.-12     D.9

10.在C语言中,自定义的标识符(D)

A.不能使用关键字,并且不区分大小写

B.能使用关键字,并且区分大小写

C.能使用关键字,并且不区分大小写

D.不能使用关键字,并且区分大小写

11.根据定义inta[]={1,2,3},i,*p=a;从语法分析( D)是不正确的。

A.a[p-a]B.*(&a)C.pD.*(*(a+i))

12.若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为( A)。

A.1234B.12,34C.1234D.12:

34

13.unionuex{inti;floatf;charc;}ex;则sizeof(ex)的值是(A)。

A.4B.5C.6D.7

14.已知m的ASCII值为109,将字母n赋值给已定义的变量c,下面哪一个是正确的(  D)

A.c=nB.c=“n”C.c=’\n’D.c=110

15.下面定义的标识符中正确的是(A)。

A.INT      B.abc.c      C.2abc123f       D.long

16.在TC环境中,int型数据的数值范围是(A)。

  A.-32768~32767      B.-32767~32767      C.0~32767       D.0~32768

17.数组定义chara[10]={'a','b','c'}:

包括了几个元素(D)。

A.3B.9C.4D.10

18.为表示关系x≥y≥z,正确的C语言表达式为(C)。

A.(x>=y>=z)B.(x>=y)AND(y>=z)

C.(x>=y)&&(y>=z)D.(x>y)&(y>=z)

19.编译程序的功能是(B)。

A.调试程序      B.生成目标文件      C.执行EXE文件       D.连接为可执行文件

20.有定义语句:

intb;charc[10];,则正确的输入语句是(B)。

A.scanf("%d%s",&b,&c);B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);D.scanf("%d%s",b,&c);

21.c语言中最简单的数字类型包括(B)

A.整型、实型、逻辑型

B.整型、实型、字符型

C.整型、字符型、逻辑型

D.整型、实型、逻辑型、字符型

22.c语言提供的合法的数据类型关键字是(A)

A.doubleB.shortC.integerD.char

23.c语言中合法的字符常量是(B)

A.’\084’B.’\x43’C.’ab’D.“\0”

24.若已定义x和y为double型,则表达式:

x=1,y=x3/2的值是(C)

A.1B.2C.2.0D.2.5

25.以下能正确定义一维数组的选项是(B)。

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

C.chara={'A','B','C'};D.inta[5]="0123";

26.以下叙述中错误的是(C)。

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

27.C语言中最简单的数字类型包括( B )。

A.整型、实型、逻辑型

B.整型、实型、字符型

C.整型、字符型、逻辑型

D.整型、实型、逻辑型、字符型

28.已知有定义chara[5],*p=a;下面的选项中正确的赋值语句是( A )。

A.p=“abcd”;B.a=“abcd”;C.*p=“abcd”;D.*a=“abcd”;

29.两个指针变量不可以( A )。

A.相加    B.比较    C.相减    D.指向同一地址

30.以下语句或语句组中,能正确进行字符串赋值的是___D___。

A.char*sp;*sp="right!

";B.chars[10];s="right!

";

C.chars[10];*s="right!

";D.char*sp="right!

";

31.已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是__C____。

A.数组a和b的长度相同B.a数组长度小于b数组长度

C.a数组长度大于b数组长度D.上述说法都不对

32.用C语言编写的代码程序B

A.可立即执行B.是一个源程序

C.经过编译即可执行D.经过编译解释才能执行

33.以下程序段(C)。

x=-1;

do

{

x=x*x;

}

while(!

x);

A.是死循环B.循环执行二次

C.循环执行一次D.有语法错误

34.以下关于do-while循环的不正确描述是(B)。

A.do-while的循环体至少执行一次

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D.do-while的循环体可以是复合语句

35.结构化程序由三种基本结构组成,三种基本结构组成的算法C

A.可以完成任何复杂的任务B.只能完成部分复杂的任务

C.只能完成符合结构化的任务D.只能完成一些简单的任务

36.下列条件语句中,功能与其他语句不同的是D

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!

=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

37.以下能正确定义二维数组的是C

A.inta[][3];B.inta[][3]=2{2*3};

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

38.C语言规定:

在一个源程序中,main函数的位置( C )。

A.必须在最开始B.必须在系统调用的库函数的后面

C.可以任意D.必须在最后

39.若a=-14,b=3,则条件表达式a

a:

b+1的值为( A )。

A.-14B.-13C.3D.4

40.为了判断两个字符串s1和s2是否相等,应当使用( D )。

A.if(s1==s2)B.if(s1=s2)

C.if(strcmp(s1,s2))D.if(strcmp(s1,s2)==0)

41.在C语言中,下面对函数不正确的描述是( D )。

A.当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B.允许函数递归调用。

C.函数形参的作用范围只是局限于所定义的函数内。

D.子函数必须位于主函数之前。

42.C语言源程序的扩展名是( C)。

A..CPP      B..OBJ    C..C        D..LIB

43.有定义语句如下:

intta[2][3]={1,2,3,4,5,6};则*(*(ta+1)+1)的值为(C)。

A.2      B.4C.5     D.&ta[1][1]

44.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(C),(注:

_表示空格)

intal,a2,charc1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A.10A_20_BB.10_A_20_BC.10A20BD.10A20_B

45.若有说明:

inta[10];则对a数组元素的正确引用是(C)。

A.a[10]B.a[3.5]C.a[5-3]D.a[-1]

46.在C语言中,一维数组的定义方式为:

A

类型说明符数组名;

A.[整型常量表达式]B.[表达式]

C.[整型常量]D.[整型表达式]

47.以下能对一维数组a进行正确初始化的语句是(C)。

A.ina[10]=(0,0.0,0,0);B.inta[10]={};C.inta[]={0};D.inta[10]={10*1};

48.有定义int*str[5],则下列语句不正确的是(A)。

A.inta;str=&a;               B.inta;str[0]=&a;

C.inta[5];str[0]=a;             D.inta[5];str[1]=&a[0];

49.已知:

inta[2][3]={1,2,3,4,5,6},(*p)[3]=a;则下列表达式不是4的是(B)。

A.*(*p+3)B.*p+3C.*(*(p+0)+3)D.a[0][3]

50.下面程序的输出结果是:

(d)

typedefstruct

{longx[2];

shorty[4];

charz[8];

}MYTYPE;

MYTYPEa;

main()

{printf("%d\n",sizeof(a));}

A.2B.8C.14D.24

二、读程序,写结果

1、#include

main()

{intx,y,z;

x=1,y=2,z=3;x+=y+=z;

printf("1:

%d\n",z+=x>y?

x++:

y++);

x=0x02ff;y=0xff00;

printf("2:

%d\n",(x&y)>>4|0x005f);

x=y=z=-1;++x||++y&&++z;

printf("3:

%d,%d,%d\n",x,y,z);

}[1:

92:

1273:

0,0,-1]

2、main()

{inta,b,s=0;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%5==1)

{b+=5;continue;}

b-=5;

}

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

}[a=5b=21]

3、fun(intk)

{printf("%d",k);

if(k>0)

fun(k-1);

}

main()

{intw=5;fun(w);printf("\n");}[543210]

4、main()

{intx,y=1,z=10;

if(y!

=0)x=5;

printf(“x=%d\t”,x);

x=1;

if(z<0)

if(y>0)x=3;

elsex=5;

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

if(z=y<0)x=3;

elseif(y==0)x=5;

elsex=7;

printf(“x=%d\t”,x);

printf(“z=%d\n”,z);

}[x=5x=1x=7z=0]

5、#include

main()

{intx=1,y=0;

switch(x)

{case1:

switch(y)

{case0:

printf(“first\n”);break;

case1:

printf(“second\n”);break;

}

case2:

printf(“third\n”);

}

}[firstthird]

6、main()

{inti=10,a[]={10,20,30,15},*p1;

char*b=”Learning”,**p2=&b;

p1=&i;

printf(“%4d”,*p1+20);

for(p1=a;p1

printf(“%4d”,*p1);

printf(“\n%c\t%s\n”,*(b+4),*p2);

}[301030nlearning]

7、#include

main()

{intk=4;

func(k);func(k);

}

func(inta)

{staticintm=0;

m+=a;

printf("%d",m);

}[48]

8、structst

{intx;

int*y;

}*p;

ints[]={30,20};

structsta[]={1,&s[0],2,&s[1]};

main()

{p=a;printf("%d,",p->x);

printf("%d\n",++(*(++p)->y));

}[121]

9、运行时假定键盘输入数据为:

12345678910

#include“stdio.h”

voidmain(void)

{

inti,a[10];

int*p;

p=a;

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

scanf(“%d“,p++);

for(p=a;p

if(*p%2)printf(“%3d”,*p);

}[__1__3__5__7__9

10、main()

{inti=1,s=3;

do

{

s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

printf("%d",i);

}[8]

11、main()

{intk=4;

func(k);func(k);

}

func(inta)

{staticintm=0;

m+=a;

printf("%d",m);

}[48]

12、voidmain(void)

{

inta=1,k;

for(k=0;k<3;k++)printf("%4d",f1(a))

}

intf1(intx)

{

staticintz=3,y=0;

y++;

z++;

return(x+y+z);

}[___6___8__10

13、inti=5;

main()

{inti=3;

{inti=10;

i++;

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

}

f1();

i+=1;

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

}

intf1()

{i=i+1;

return(i);

}[114]

三、程序填空

1.下面程序求矩阵a的主对角线元素之和,请填空。

main()

{inta[3][3]={2,4,6,8,10,12,14,16,18};

intsum=0,i,j;

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

for(j=0;___j<3__________;j++)

if(i==j)sum=sum+___a[i][j]_____;

printf("sum=%d\n",sum);

}

2.用冒泡法对任意10个整数按从大到小的顺序排序。

main()

{inta[10],i,j,t;

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

scanf("%d",&a[i]);

printf("\n");

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

for(j=0;j<9-i;j++)

if(a[j+1]>a[j])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

printf("Thesortednumbers:

\n");

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

printf("%4d",a[i]);

printf(“\n”);

}

3、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中,复制时’\0’也要复制过去,’\0’后面的字符不用。

coy(chars1[],chars2[])

{inti;

for(i=0;s2[i]!

=_’\0’__________;i++)

s1[i]=s2[i];

_printf(“s1:

%s”,s1___)______;

}

4、下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。

main()

{chara[]="students",t;inti,j;

for(i=1;i<7;i+=2)

for(j=i+2;j<8;_j+=2____________)

if(_a[j]

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

}

5.求200~300间的素数。

main()

{intm,flag;

for(m=201;m<=300;m+=2)

{flag=prime(m);

if(flag==1)

printf(“%4d”,m);

}

}

prime(inta)

{

inti,k,flag;

k=sqrt(a);

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

if(a%i==0)

break;

if(i==k+1)flag=1;

elseflag=0;

_____returnflag____________;

}

6.输入3×4数组,用指针方法实现将每行中的最小数与第0列元素对调。

main()

{inta[3][4],i,j,*p=a[0];

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

for(j=0;j<4;j++)scanf(“%d”,p++);

for(p=&a[0][0];p

swap(p);

___return_____________;

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

{for(j=0;j<4;j++)printf(“%3d”,*p++);

printf(“\n”);}

}

swap(int_*p1__________)

{intmin,i,*p2=p1,*p3;

___p3=p1______________;

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

{if(*p2<*p3)p3=p2;__p2++___________;

}

min=*p1;*p1=*p3;*p3=min;

}

7.下面程序的功能是用公式:

π×π/6=1/(1×1)+1/(2×2)+1/(3×3)+......

求π的近似值,直到最后一项的值小于10e-6为止。

#include

#include

voidmain(void)

{

longi=1;

__float_______pi=0;

while(i*i<=10e+6){pi=___pi+1.0/(float)(i*i)_____;i++;}

pi=sqrt(6.0*pi);

printf("pi=%10.6f\n",pi);

}

8.下面程序的功能是把以下给定的字符按其矩阵格式读入数组str1中,并输出行列号之和是3的数组元素。

voidmain(void)

{

charstr1[4][3]={'A','b','C','d','E','f','G','h','I','j','K','i'};

intx,y,z;

for(x=0;x<4;x++)

for(y=0;__y<3________;y++)

{

z=x+y;

if(_z==3__________)printf("%c\n",str1[x][y]);

}

}

9.以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

递归公式如下:

age

(1)=10

age(n)=age(n-1)+2(n>1)

#include

intage(intn)

{

intc;

if(n==1)c=10;

elsec=_age(n-1)+2_________;

returnc;

}

10.以下程序的功能是判断输入的年份是否是闰年。

voidmain(void)

{

intyear,yes;

scanf("%d",&year);

if(year%400==0)yes=1;

elseif(year%4

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

当前位置:首页 > 解决方案 > 学习计划

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

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