C语言练习题1.docx

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

C语言练习题1.docx

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

C语言练习题1.docx

C语言练习题1

一、单项选择题

1、C语言程序的基本单位是()

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

2、计算机能直接执行的程序是()

A)源程序B)目标程序C)汇编程序D)可执行程序

3、以下叙述中错误的是()

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.Obj的文件是一个二进制文件

C)后缀为.Obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

4、对于一个正常运行的C程序,以下叙述中正确的是()

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最a后一个函数中结束

D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束

5、下列选项中不属于结构化程序设计原则的是()

A)可封装B)自顶向下C)模块化D)逐步求精

6、结构化程序设计所规定的三种基本控制结构是()

A)输入、处理、输出B)顺序、选择、循环

C)树形、网形、环形D)主程序、子程序、函数

7、算法具有五个特性,以下选项中不属于算法特性的是()

A)有穷性 B)简洁性 C)可行性 D)确定性

8、以下关于C语言的叙述中正确的是()

A)C语言中的注释不可以夹在变量名或关键字的中间

B)C语言中的变量可以在使用之前的任何位置进行定义

C)在C语言算术的书写中,运算符两侧的运算数类型必须一致

D)C语言的数值常量中夹带空格不影响常量值的正确表示

9、以下选项中,能用作用户标识符的是()

A)returnB)6_aC)_0_D)int

10、以下选项中合法的标识符是()

A)#33B)a>bC)_11D)1__

11、以下不能定义为用户标识符的是()

A)Main B)_0 C)_int D)sizeof

12、若有定义:

doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是()

A)a=a++,i++B)i=(a+k)<=(i+k)C)i=a%11D)i=!

a

13、表达式strlen("China")的值是()

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

14、表达式strlen("c")的值是()

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

15、若已定义x和y是double类型变量,则表达式x=1,y=x+3/2的值是()

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

16、若有定义语句:

 intx=10;,则表达式x-=x+x的值是()

A)-20B)-10C)0D)10

17、若有定义语句:

 intx=168;,则表达式x=x%100/10的值为()

A)6B)6.8C)1D)8

18、下述程序段输出结果是()

intx=6;doubley=3.141593;printf("%d%5.3f",x,y);

A)63.141B)63.141C)6,3.141D)63.1410

19、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()

A)k%2   B)k%2==1   C)(k%2)!

=0   D)!

k%2==1

20、若有定义语句:

doublex,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是()

A)scanf("%f%f",x,y);B)scanf("%f%f",&x,&y);

C)scanf("%lf%le",px,py);D)scanf("%lf%lf",x,y);

21、以下运算符优先级最高的是()

A)<=B)!

=C)&&D)?

:

22、以下运算符优先级最高的是()

A)+B)|C)||D)+=

23、以下是if语句的基本形式:

if(表达式)语句

其中“表达式”()

A)必须是关系表达式B)必须是逻辑表达式

C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式

24、以下程序的运行结果是()

#include

main()

{inti,j,m=55;

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

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

m=m%j;

printf("%d\n",m);}

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

25、若i、j已定义为int类型,则以下程序段中内循环体执行printf语句的总执行次数是()

for(i=5;i>0;i--)

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

printf("OK.\n");

A)20B)24C)25D)30

26、以下错误的定义语句是()

A)intx[][3]={{0},{1},{1,2,3}};

B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D)intx[][3]={1,2,3,4};

27、以下不能对二维数组a进行正确初始化的语句是()

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

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

28、以下叙述中正确的是()

A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令

C)宏名必须用大写字母表示

D)宏替换不占用程序的运行时间

29、以下叙述中错误的是()

A)在程序中凡是以“#”开始的语句行都是预处理命令行

B)预处理命令行的最后不能以分号表示结束

C)#defineMAX是合法的宏定义命令行

D)C程序对预处理命令行的处理是在程序执行的过程中进行的

30、以下关于宏的叙述中正确的是()

A)宏名必须用大写字母表示

B)宏定义必须位于源程序中所有语句之前

C)宏替换没有数据类型限制

D)宏调用比函数调用耗费时间

31、在文件包含预处理语句(#include)的使用形式中,当之后的文件名用“”(双引号)括起时,寻找被包含文件的方式是()

A)直接按系统设定的标准方式搜索目录

B)先在源程序所在目录搜索,再按系统设定的标准方式搜索

C)仅仅搜索源程序所在目录

D)仅仅搜索当前目录

32、已定义a为int型变量,则对指针变量p的正确定义和初始化的是()

A)int*p=a;B)int*p=*a;C)intp=&a;D)int*p=&a;

33、设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是()

A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3

34、有如下程序段:

int*p,a=10,b=1;p=&a;a=*p+b;

执行该程序段后,a的值是()

A)12B)11C)10D)编译出错

35、若有定义语句:

 int c[3][5],*p,*q[3];且0<=i<3,则错误的赋值是()

A)p=c;B)q[i]=c[i];C)p=c[i];D)p=&c[1];

36、若有以下定义:

intx[10],*pt=x;

则对x数组元素的正确应用是()

A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3

37、若有定义语句:

doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是()

A)*pB)x[5]C)*(p+1)D)*x

38、有以下程序

有以下程序

#include

main()

{

inta[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p

printf("%d,",*p);

}

程序运行后的输出结果是()

A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,,1,

39、设有以下函数:

void fun(int n,char *s){……}

则下面对函数指针的定义和赋值均正确的是()

A)void(*pf)();pf=fun;B)void*pf();pf=fun;

C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;

40、下列函数的功能是()

fun(char *a,char *b)

{while((*b=*a)!

='\0'){a++;b++;} }

A)将a所指字符串赋给b所指空间

B)使指针b指向a所指字符串

C)将a所指字符串和b所指字符串进行比较

D)检查a和b所指字符串中是否有'\0'

41、有以下程序

#include

main()

{ intm=1,n=2,*p=&m,*q=&n,*r;

 r=p;p=q;q=r;

 printf("%d,%d,%d,%d\n",m,n,*p,*q);

}程序运行后的输出结果是()

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

42、设有定义语句int(*f)(int);,则以下叙述正确的是()

A)f是基类型为int的指针变量

B)f是指向函数的指针变量,该函数具有一个int类型的形参

C)f是指向int类型一维数组的指针变量

D)f是函数名,该函数的返回值是基类型为int类型的地址

43、在说明一个结构体变量时,系统分配给它的存储空间是()

A)该结构体中第一个成员所需的存储空间

B)该结构体中最后一个成员所需的存储空间

C)该结构体中占用最大存储空间的成员所需的存储空间

D)该结构体中所有成员所需存储空间的总和

44、如有以下定义:

structdate{

intyear;

intmonth;

intday;};

structworklist{

charname[20];

charsex;

structdatebirthday;}person;

对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是()

A)year=1985;B)birthday.year=1985;

C)person.year=1985;D)person.birthday.year=1985;

45、若有以下说明和定义

uniondt

{inta;charb;doublec;}data;

以下叙述中错误的是()

A)data的每个成员起始地址都相同

B)变量data所占内存字节数与成员c所占字节数相等

C)程序段:

data.a=5;printf("%f",data.c);输出结果为5.000000

D)data可以作为函数的实参

46、设有如下说明

typedefstructST

{longa;

intb;

charc[2];

}NEW;

则下面叙述中正确的是()

A)以上的说明形式非法 B)ST是一个结构体类型

C)NEW是一个结构体类型 D)NEW是一个结构体变量

47、下列关于结构型、共用型、枚举型的定义语句中,正确的是()

A)structss{intx}B)unionuu{intx;}xx=5;

C)enumee{intx;};D)struct{intx;};

48、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()

A)x||yB)x|y

C)x&yD)x

y

49、设inta=2;表达式(a<<2)/(a>>1)的值是()

A)0B)2C)4D)8

50、以下叙述中错误的是()

A)gets函数用于从终端读入字符串

B)getchar函数用于从磁盘文件读入字符

C)fputs函数用于把字符串输出到文件

D)fwrite函数用于以二进制形式输出数据到文件

51、以下叙述中错误的是()

A)C语言中对二进制文件的访问速度比文本文件快

B)C语言中,随机文件以二进制代码形式存储数据

C)语句FILEfp;定义了一个名为fp的文件指针

D)C语言中的文本文件以ASCII码形式存储数据

51、有以下程序

#include"stdio.h"

voidWriteStr(char*fn,char*str)

{FILE*fp;

fp=fopen(fn,"W");

fputs(str,fp);

fclose(fp);}

main()

{WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}程序运行后,文件t1.dat中的内容是()

A)start B)end C)startend D)endrt

52、若要打开名为abc.txt的文本文件进行追加操作,符合此要求的函数调用是()

A)fopen("abc.txt","r");B)fopen("abc.txt","w");

C)fopen("abc.txt","a"); D)fopen("abc.txt","rb");

53、在C程序中,可把整型数以二进制形式存放到文件中的函数是()

A)fprintf函数  B)fread函数

C)fwrite函数  D)fputc函数

二、程序(段)填空题

1、下列是评分统计程序,一共有8个评委打分,统计最后得分时,去掉一个最高分和一个最低分,其余6个分数的平均分即为最后得分,请填空。

#include

main()

{floatave,max,min,x[8]={9.2,9.5,9.8,7.4,8.5,9.1,9.3,8.8};

inti;

max=min=①__x[0]____________;

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

{if(max

max=x[i];

if(②__min>x[i]__________)

min=x[i];}

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

ave+=x[i];

ave=③_(ave-min-max)/6_____________;

printf("average=%f\n",ave);

}

2、以下程序实现:

从键盘输入一个字符,若输入为小写字母,则将小写字母变为大写字母并输出,其它字符不予处理。

请填空。

#include

voidmain()

{

charc;

printf("inputaword\n");

scanf("%c",①____&c_____);

if(②__c>='a'&&c<='z'____________)//判断是否是小写字母

printf("%c\n",③__c-32______);//若是小写字母,则转化为大写字母输出

}

3、以下程序用来判断指定文件是否能正常打开,请填空。

#include

Main()

{FILE*fp;

if(((fp=fopen("test.txt","r"))==①NULL))

printf("未能打开文件!

\n");

else

printf("文件打开成功!

\n");}

4、下列程序的功能是:

求1+1/2+1/3+⋯⋯+1/n的值,不要改变与输入输出有关的语句。

main()

{inti,n;

floatsum;

scanf("%d",&n);

①sum=0;

for(②i=1;③i<=n;i++)

sum=④sum+1.0/i;

printf("%.3f\n",sum);

}

三、阅读程序并写出运行结果。

1、有以下程序

#include

main()

{

inta=1,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!

=2||c--!

=3)

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

else

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

else

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

}

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

2、有一下程序

#include

main()

{chargrade;

scanf("%c",&grade);

switch(grade)

{case'A':

printf(">=85");

case'B':

case'C':

printf(">=60");break;

case'D':

printf("<60");

default:

printf("error");}

}

若输入A,该程序的输出结果为。

3、有以下程序

#include

main()

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

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

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

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

4、有一下程序

#include

main()

{

longf,f1=1,f2=1;

inti;

printf("%ld\t%ld\t",f1,f2);

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

{f=f1+f2;

printf("%ld\t",f);

f1=f2;

f2=f;

}

}

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

5、有一下程序

#include

main()

{intk;

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

{if(k==3)

break;

printf("%d",k);}

}

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

6、有一下程序

#include

main()

{

inti,j,x=0;

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

{x++;

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

{if(j%2)

continue;

x++;

}

x++;

}

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

}

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

7、有一下程序

#include

main()

{chara[]={'h','e','l','\0','l','o','\0'};

printf("%s",a);

}

该程序的输出结果为。

8、有一下程序

#include

main()

{

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

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

printf("%d",t[2-i][i]);

}

该程序的输出结果为。

9、有一下程序

#include

intfun(int,int);

main()

{inta=10,b=9,c;

c=fun(a,b);

printf("%d",c);

}

intfun(intx,inty)

{intz;

z=x>y?

x:

y;

return(z);

}

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

10、有一下程序

#include

intswap(int,int);

main()

{intx=7,y=11;

swap(x,y);

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

}

intswap(inta,intb)

{

inttemp;

temp=a;a=b;b=temp;

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

11、有一下程序

#include

voidf(int*p,int*q);

main()

{intm=1,n=2,*r=&m;

f(r,&n);printf("%d,%d",m,n);}

voidf(int*p,int*q)

{p=p+1;*q=*q+1;}程序运行后的输出结果是。

12、有一下程序

#include

main()

{inta[3][3],*p,i;

p=&a[0][0];

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

p[i]=i+1;

printf("%d\n",a[1][2]);

}该程序执行后的输出结果为是。

四、判断题(对的填√,错的填×)

1、C程序中的注释只能出现在程序的开始位置和语句的后面。

()

2、在标准C语言中,语句必须以“;”结束。

()

3、关系运算符的优先级高于逻辑运算符。

()

4、在标准C语言中,数组的下标必须是常量,不允许是表达式。

()

5、函数的定义和调用都是可以嵌套的。

()

6、对于定义int*p;则*p是指针变量名。

()

7、C语言中必须用main作为主函数名,程序将从此开始执行,在此结束。

()

8、使用putchar函数时,必须在之前包含头文件stdio.h。

()

9、在if_else语句中,配对规则是else总是与最近的未配对的if配对。

()

10、在标准C语言中,二维数组在内存中的存放次序是以行序为主序。

()

11、C语言中函数声明要以“;”结束。

()

12、内存单元的地址与内存单元中的内容是两个相同的内容。

()

13、若要处理含有不同类型的相关数据,应自定义结构体类型。

()

14、共用体变量中的各成员的首地址是不一样的。

()

15、文件由结构序列组成,可以构成二进制文件或文本文件。

()

16、文件使用方式“wb+”的含义是为读写打开一个二进制文件。

()

17、C程序是由函数构成的。

()

18、在标准C语言中,语句必须以“;”结束。

()

19、关系运算符的优先级低于逻辑运算符。

()

20、在标准C语言中,数组的下标必须是常量,不允许是表达式。

()

21、

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

当前位置:首页 > 小学教育 > 语文

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

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