C语言练习题1.docx

上传人:b****4 文档编号:24904104 上传时间:2023-06-02 格式:DOCX 页数:33 大小:29.99KB
下载 相关 举报
C语言练习题1.docx_第1页
第1页 / 共33页
C语言练习题1.docx_第2页
第2页 / 共33页
C语言练习题1.docx_第3页
第3页 / 共33页
C语言练习题1.docx_第4页
第4页 / 共33页
C语言练习题1.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C语言练习题1.docx

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

C语言练习题1.docx

C语言练习题1

一、语言基础选择题

1.下面说法中,正确的是B

A)C语言是机器语言

B)C语言程序可以由一个或多个函数构成

C)C语言程序总是从第一个函数开始执行

D)C语言程序不用编译就可以直接运行

2.C语言程序的基本单位是C

A)程序行B)语句C)函数D)字符

3.一个C语言程序的上机步骤是A

A)编辑,编译,连接,执行B)编译

C)编辑,连接,执行D)连接,编译,执行

4.已知有定义:

charch;则如下正确的赋值为A

A)ch=‘M’;B)ch=’55’;C)ch="M";D)ch="55";

5.在TurboC环境中,查看程序运行结果的快捷键是D

A)F5B)Ctrl+F9C)F8D)Alt+F5

6.下列变量名中合法的是C

A)B.C.TomB)3a6bC)_b5a8D)$ABC

7.C语言中,要求运算数必须是整型的运算符是D

A)/B)++C)!

=D)%

8.已知intj,i=1;则执行j=-i++;i和j的值为B

A)1,-1B)2,-1C)1,1D)2,1

9.在C语言中,数字035是一个A

A)八进制数B)十六进制数C)十进制数D)非法数

10.C语言中用于结构化程序设计的三种基本结构是___A___

A)顺序结构、选择结构、循环结构B)if、switch、break

C)for、while、do-whileD)if、for、continue

11.如下程序运行后的输出结果是___B___

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

A)a=1,b=1B)a=2,b=1C)a=1,b=0D)a=2,b=2

12.下列说法中,正确的是___C___

inti,x;

for(i=0,x=0;i<=5&&x!

=4;i++);

A)循环体一次也不执行B)是无限循环

C)最多执行6次D)最多执行5次

13.设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是___D___

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

14.有输入语句:

scanf("a=%d,b=%d",&a,&b),为使变量a值为3,b值为7,

从键盘输入数据的正确形式是___A___

A)a=3,b=7<回车>B)a=3b=7<回车>C)37<回车>D)3,7<回车>

15.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是___D___

#include

main()

{charc1='A',c2='Y';

printf("%d,%d\n",c1,c2);

}

A)因输出格式不合法,输出错误信息B)65,90

C)A,YD)65,89

16.如下程序段

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为___D___

A)tureB)falseC)0D)1

17.以下关于break和continue语句的说明正确的是__C____

A)break用于switch结构,continue用于循环结构。

B)continue用于switch结构,break用于循环结构。

C)continue作用为结束本次循环,break作用为跳出循环体。

D)break作用为结束本次循环,continue作用为跳出循环体。

18.逻辑运算符两侧运算对象的数据类型为___D___

A)只能是0或1B)只能是0或非0正数

C)只能是int或char型数据D)可以是任何类型数据

19.下列叙述中正确的是___A___

A)函数定义不可以嵌套,但函数调用可以嵌套

B)函数定义可以嵌套,但函数调用不可以嵌套

C)函数定义和函数调用都不能嵌套

D)函数定义与函数调用都可以嵌套

20.若x为整型变量,以下定义指针的正确语句是___C___

A)intp=&x;B)intp=x;

C)int*p=&x;D)p=x;

21.以下数组声明语句中正确的是___D___

A)inta,a[n];B)inta[];

C)inta[2][3]={{1},{2},{3}};D)inta[][3]={{1},{2},{3}};

22.C语言的编译系统对宏命令是___D___

A)在程序运行时进行代换处理的

B)在程序连接时进行代换处理的

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

D)在对源程序中其它成份正式编译之前进行处理的

23.设intb[]={1,2,3,4},y,*p=b;

则执行语句y=*p++;之后,变量y的值为___A___

A)1B)2

C)3D)4

24.当定义一个结构体变量时,系统分配给它的内存是___A___

A)各成员所需内存量的总和B)结构中第一个成员所需的内存量

C)成员中内存量最大者所需的容量D)结构中最后一个成员所需内存量

25.为了向二进制文件尾部增加数据,打开文件的方式应采用___A__追加_

A)“ab”B)“rb+”

C)“wb”D)“wb+”

二、程序阅读选择题

1.有以下程序

voidfun2(chara,charb){printf("%c%c",a,b);}

chara='A',b='B';

voidfun1(){a='C';b='D';}

main()

{fun1();

printf("%c%c",a,b);

fun2('E','F');

}

程序的运行结果是A

A)CDEFB)ABEFC)ABCDD)CDAB

2.以下程序的输出结果是___A___

main()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

A)011122B)012C)012020D)120

3.以下程序的输出结果是___C___

main()

{inti=0,s=0;

do{if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

printf("%d\n",s);

}

A)28B)12C)16D)21

4.以下程序运行后的输出结果是___C___

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

printf("%d\n",S(i+j));

}

A)785B)120C)81D)21

5.以下程序的输出结果是___D___

main()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

A)59B)16C)12D)15

6.以下程序的输出结果是_____D_____

voidf(intx,inty)

{intt;

if(x

}

main()

{inta=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

printf("%d,%d,%d\n",a,b,c);

}

A)3,4,5B)5,3,4C)5,4,3D)4,3,5

7.以下程序的输出结果是___C___

#include

main()

{inti,m,k;

for(m=3;m<=15;m++)

{k=skrt(m);

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

if(m%i==0)break;

if(i>=k+1)printf(“%d”,m);

}

}

A)468101214B)3691215C)3571113D)3579111315

8.以下程序的输出结果是___C___

f1(inta)

{autob=0;

staticc=2;

b=b+1;

c=c+1;

return(a+b+c);

}

main()

{inta=2,i;

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

printf(“%2d”,f1(a));

}

A)666B)765C)678D)567

三、填空题

1.数学式3x3+2x写成C语言的表达式是__3*x*x*x+2*x______。

2.strlen(“Beijing2008”)=____11________。

3.函数调用时实参与形参的传递方式有值传递和地址传递两种。

4.有一个二维数组a[3][4],则*(a[1]+2)表示数组元素__a[1][2]___。

5.若x=4,则执行语句x>>2;后,x的值是1。

6.以下程序段的输出结果是___11__

inti=9;

printf("%o\n",i);

7.以下程序的作用是在屏幕上显示九九乘法表。

显示结果如下,请填空:

1*1=1

1*2=22*2=4

1*3=32*3=63*3=9

…………………

main()

{inti,j;

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

{for(j=1;_j<=i__;j++)

printf("%d*%d=%-2d",j,i,__j*i___);

_printf(“\n”);_____}

}

8.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

请填空。

main()

{inti,a[20],sun,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",_&a[i]__);

fro(i=0;i<20;i++)

{if(a[i]>0)

{count++;

sum+=_a[i]___;}

}

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

}

9.通过函数求f(x)的累加和,其中f(x)=x+1.请填空。

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(__x__);

returns;

}

F(intx)

{return(x+1)__;}

10.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角(其构成规律是:

第0列元素和主对角线元素均为1,其余元素为其左上方和正上方元素之和,数据的个数每行递增1),请将程序补充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[0][0]=1;

for(i=1;i

{x[i][0]=_x[i][i]_=1;

for(j=1;j

x[i][j]=_x[i-1][j-1]+x[i-1][j]_;}

}

11.以下程序的功能是:

整数类型数组a中存有不超过三位数的若干十进制正数元素,要求找出各位数字之和为奇数的元素.函数JS()用于测试组成数值的各位数值之和的奇偶.请填空将程序补充完整.

 Main()

{inti,a[5];

intJS(int);

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

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

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

if(JS(a[i])!

=0)

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

printf(“\n”);

}

intJS(intx)

{inti,j,sum=0;

while(x!

=0)

{sum=sum+x%10;

x=x/10;

}

if(sum%2==0)return(0);

elsereturn

(1);

}

 

四、编程题

   

编写一个程序求表达式1!

+2!

+3!

+4!

+5!

+6!

+……的前n项之和,n的值由用户从键盘输入.

要求:

①在自定义函数中求表达式的值;

②在主函数中提示及输入n,并将运算结果输出。

程序如下:

intJCH(intn)……1分

{inti;……1分

longt=1,s=0;……1分

for(i=1;i<=n;i++)……2分

{t=t*i;

s=s+t;

}……2分

return(s);……1分

}

voidmain()……1分

{intn;

longresult;……1分

printf(“inputn:

”);……1分

scanf(“%d”,&n);……1分

result=JCH(n);……2分

printf(“theresultis%ld\n”,result);……1分

}

一、语言基础选择题

1.下面可以作为C语言程序设计中标识符的是C

A)2DateB)num(10)C)_total3D)int

2.每个C语言程序都必须有一个B函数,C程序总是从该函数开始执行

A)include()B)main()C)scanf()D)printf()

3.一个C语言程序的上机步骤是A

A)编辑,编译,连接,执行B)编译

C)编辑,连接,执行D)连接,编译,执行

4.已知有定义:

charch;则如下正确的赋值为A

A)ch=‘M’;B)ch=’55’;C)ch="M";D)ch="55";

5.已知字符‘A’的ASCII值为65,则‘\103’表示的字符是C

A)字符AB)字符BC)字符CD)非法常量

6.C语言程序的基本单位是C

A)程序行B)语句C)函数D)字符

7.表达式3.6-5/2+1.2+5%2的值是D

A)4.3B)4.8C)3.3D)3.8

8.已知intj,i=1;则执行j=-i++;i和j的值为B

A)1,-1B)2,-1C)1,1D)2,1

9.下面说法中,正确的是B

D)C语言是机器语言

E)C语言程序可以由一个或多个函数构成

F)C语言程序总是从第一个函数开始执行

D)C语言程序不用编译就可以直接运行

10.C语言中用于结构化程序设计的三种基本结构是_C___

A)顺序结构、continue、循环结构B)选择结构、stitch、循环结构

C)顺序结构、选择结构、循环结构D)、for、stitch、if

11.下面程序运行后,输出的结果是_D__

#include

voidmain()

{inta=12,b=10;

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

}

A)13,3B)13,2C)12,3D)12,2

12.下列说法中,正确的是_C_

inti,x;

for(i=0,x=0;i<=5&&x!

=4;i++);

A)循环体一次也不执行B)是无限循环

C)最多执行6次D)最多执行5次

13.设i,j,k为int型变量,若从键盘输入1#2#3#<回车>,下面__A输入语句可以使i的值为1,j的值为2,k的值为3。

A)scanf(“%d#%d#%d”,&I,&j,&k)

B)scanf(“%d,%d,%d”,&I,&j,&k)

C)scanf(“%d%d%d”,&I,&j,&k)

D)scanf(“%d%d%d”,&I,&j,&k)

14.对于int型函数max,下面函数原型声明语言正确的是_C__

A)intmax(intx,y)B)intmax(intxinty)

C)intmax(int,int)D)intmax(x,y)

15.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是_D__

#include

main()

{charc1='A',c2='Y';

printf("%d,%d\n",c1,c2);

}

A)因输出格式不合法,输出错误信息B)65,90

C)A,YD)65,89

16.假设所有变量为int型,则执行语句a=(b=5,c=b++)后,a,b,c的值分别为__C___

A)6,6,5B)5,5,6C)5,6,5D)5,6,6

17.以下关于break和continue语句的说明正确的是__C__

A)break用于switch结构,continue用于循环结构。

B)continue用于switch结构,break用于循环结构。

C)continue作用为结束本次循环,break作用为跳出循环体。

D)breake作用为结束本次循环,continue作用为跳出循环体。

18.逻辑运算符两侧运算对象的数据类型为__D__

A)只能是0或1B)只能是0或非0正数

C)只能是int或char型数据D)可以是任何类型数据

19.下列叙述中正确的是__C__

A)函数定义和函数调用都不能嵌套

B)函数定义可以嵌套,但函数调用不可以嵌套

C)函数定义不有嵌套,但函数调用可以嵌套

D)函数定义与函数调用都可以嵌套

20.若x为整型变量,以下定义指针的正确语句是__C__

A)intp=&x;B)intp=x;

C)int*p=&x;D)p=x;

21.若有以下说明和语句,对a数组元素的正确引用是_C__

inta[4][5],(*b)[5];

b=a;

A)b+1B)*(b+1)

C)*(*b+1)D)*(b+1)+1

22.C语言的编译系统对宏命令是_D_

A)在程序运行时进行代换处理的

B)在程序连接时进行代换处理的

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

D)在对源程序中其它成份正式编译之前进行处理的

23.下面程序的运行结果是__B_

main()

{inta[10]={1,2,3,4,5,6,7,88,9,10},*p=a;

p++;

printf(“%d\n”,*(p+1));

A)4B)3

C)2D)1

24.当说明一个共用体变量时,系统分配给它的内存是__C__

A)各成员所需内存量的总和B)结构中第一个成员所需的内存量

C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量

25.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为__B___

A)EOFB)非0值C)0D)NULL

二、程序阅读选择题

1.有以下程序

voidfun2(chara,charb){printf("%c%c",a,b);}

chara='A',b='B';

voidfun1(){a='C';b='D';}

main()

{fun1();

printf("%c%c",a,b);

fun2('E','F');

}

程序的运行结果是_B__

A)CDEFB)ABEFC)ABCDD)CDAB

2.有以下程序_B__

#include

#defineN5

#defineMN+1

#definef(x)(x*M)

main()

{inti1,i2;

i1=f

(2);

i2=f(1+1);

printf("%d%d",i1,i2);

}

A)1212B)117C)1111D)127

3.有以下程序_C__

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main()

{char*s1="abc",*s2="123";

swap(s1,s2);printf("%s,%s\n",s1,s2);

}

程序执行后的输出结果是

A)123,abcB)abc,123

C)1bc,a23D)321,cba

4.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

printf("%d\n",s);

}

程序执行后的输出结果是_C__

A)45B)20C)25D)36

5.以下程序的输出结果是_C__

main()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

A)59B)16C)12D)15

6.有以下程序

main()

{

inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d%d%d\n",i,j,k);

}

程序运行后的输出结果是__D___。

A)123B)234C)223D)233

7.若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

A:

C

C:

D的值是__A__。

A)1B)2C)3D)4

8.有以下程序

point(char*p){p+=3;}

main()

{charb[4]={'a','b','c','d'},*p=b;

point(p);printf("%c\n",*p);

}

程序运行后的输出结果是__A___。

A)aB)bC)cD)d

三、填空题

1.已有定义:

double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元:

p=(double*)malloc(sizeof(double))。

2.有一个二维数组a[3][4],则*(a[1]+2)表示数组元素___7____。

3.函数调用时实参与形参的传递方式有值传递和地址传递两种。

4.strlen(“shanghai”)=____8____。

5.若x=15,则执行语句x<<2;后,x的值是60。

6.当运行以下程序时,输入abcd,程序的输出结果是:

a*b*c*d*

insert(charstr[]

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

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

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

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