C语言基础知识综合练习题.docx

上传人:b****2 文档编号:17571787 上传时间:2023-07-26 格式:DOCX 页数:29 大小:35.39KB
下载 相关 举报
C语言基础知识综合练习题.docx_第1页
第1页 / 共29页
C语言基础知识综合练习题.docx_第2页
第2页 / 共29页
C语言基础知识综合练习题.docx_第3页
第3页 / 共29页
C语言基础知识综合练习题.docx_第4页
第4页 / 共29页
C语言基础知识综合练习题.docx_第5页
第5页 / 共29页
C语言基础知识综合练习题.docx_第6页
第6页 / 共29页
C语言基础知识综合练习题.docx_第7页
第7页 / 共29页
C语言基础知识综合练习题.docx_第8页
第8页 / 共29页
C语言基础知识综合练习题.docx_第9页
第9页 / 共29页
C语言基础知识综合练习题.docx_第10页
第10页 / 共29页
C语言基础知识综合练习题.docx_第11页
第11页 / 共29页
C语言基础知识综合练习题.docx_第12页
第12页 / 共29页
C语言基础知识综合练习题.docx_第13页
第13页 / 共29页
C语言基础知识综合练习题.docx_第14页
第14页 / 共29页
C语言基础知识综合练习题.docx_第15页
第15页 / 共29页
C语言基础知识综合练习题.docx_第16页
第16页 / 共29页
C语言基础知识综合练习题.docx_第17页
第17页 / 共29页
C语言基础知识综合练习题.docx_第18页
第18页 / 共29页
C语言基础知识综合练习题.docx_第19页
第19页 / 共29页
C语言基础知识综合练习题.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言基础知识综合练习题.docx

《C语言基础知识综合练习题.docx》由会员分享,可在线阅读,更多相关《C语言基础知识综合练习题.docx(29页珍藏版)》请在冰点文库上搜索。

C语言基础知识综合练习题.docx

C语言基础知识综合练习题

一、C语言基本知识和基本语句

(一)选择题

1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是()。

A)‘a’&&’b’B)a<=b

C)a||b+c&&b-cD)!

((a

C||1)

2.设ch是char型变量,其值为A字符,且有表达式:

ch=(ch>=‘A’&&ch<=‘Z’)?

(ch+32):

ch,则表达式ch的值是()字符。

A)AB)aC)ZD)z

3.若x和y都是int型变量,x=100,y=200,且有程序段:

printf(“%d”,(x,y));则输出结果是()。

A)200B)100C)100,200D)输出格式不够,输出不确定的值

4.C语言中最简单的数据类型包括()。

A)整型、实型、逻辑型B)整型、单精度型、双精度、字符型

C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型

5.C语言中,运算对象必须是整型的运算符是()。

A)%B)/C)%和/D)**

6.数学关系x≥y≥z,它对应C语言表达式是()。

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

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

7.以下说法中正确的是()。

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

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

8.设intx=10,y=3,z;则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是()。

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

9.C语言表达式10!

=9的值是()。

A)trueB)非零值C)0D)1

10.合法的C语言字符常量是()。

A)’\t’B)“A”C)65D)A

11.若int类型数据占两个字节,则下列语句的输出为()。

intk=-1;

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

A)-1,-1B)–1,32767C)–1,32768D)–1,65535

12.组成C语言程序的是()。

A)子程序B)过程C)函数D)主程序和子程序

13.以下的选项中,正确的赋值语句是()。

A)i++;B)a=1,b=2;C)a=b=5D)y=int(x);

14.以下不符合C语言语法的语句是()。

A)i++;B)i=j=5;C)k=2*4,k*4;D)y=float(i)

15.下列程序的输出结果是()。

main()

{inta=9;

a+=a-=a+a;

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

A)18B)9C)–18D)–9

16.下列语句的输出结果是()。

printf(“%d\n”,(int)(2.5+3.0)/3);

A)有语法错误不能通过编译B)2C)1D)0

17.下列程序的输出是()。

main()

{inta=7,b=5;

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

A)有语法错误不能通过编译B)2C)1D)0

18.请阅读程序()。

main()

{inta;floatb,c;

scanf(“%2d%3f%4f”,&a,&b,&c);

printf(“\na=%d,b=%f,c=%f\n”,a,b,c);}

若运行时从键盘上输入9876543210(CR表示回车),则上面程序的输出结果是()。

A)a=98,b=765,c=4321B)a=10,b=432,c=8765

C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0

19.以下程序的输出结果是()。

main()

{inta=-1,b=4,k;

k=(++a<0)&&!

(b--<=0);

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

A)104B)103C)003D)004

20.下列程序的输出结果是()。

main()

{inti,j,k,a=3,b=2;

i=(--a==b++)?

--a:

++b;j=a++;k=b;

printf(“i=%d,j=%d,k=%d\n”,i,j,k);}

A)i=2,j=1,k=3B)i=1,j=1,k=2C)i=4,j=2,k=4D)i=1,j=1,k=3

(二)填空题

1.在C语言中,double类型数据占个字节;char类型数据占个字节。

2.设C语言中,int类型数据占2个个字节,则long类型数据占个字节;unsignedint类型数据占个字节;short类型数据占个字节;

3.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.37))值的数据类型为

4.假设m是一个三位数,从左到右用a,b,c表示每一位的数字,若从左到右数字是bac的三位数,则在C语言中用m表示bac的表达式是

二、C语言选择和循环结构

1.在C语言中,能代表逻辑值“真”的是()。

A)trueB)大于0的数C)非0整数D)非0的数

2.若给定条件表达式(M)?

(a++):

(a--);则其中表达式M

A)和(M==0)等价B)和(M==1)等价

C)和(M!

=0)等价D)和(M!

=1)等价

3.在C语言的if语句中,用作判断的表达式是()。

A)关系表达式B)逻辑表达式C)算术表达式D)任意表达式

4.若变量已正确定义,则以下程序段的输出为()。

inta=2;b=3;

printf(a>b?

“***a=%d”:

“###b=%d”,b);

A)没有正确的输出格式控制B)***a=2

C)###b=3D)***a=2####b=3

5.以下程序段的输出结果为()。

inta=1;b=2,c=2,t=0;

while(a

printf(“%d,%d,%d”,a,b,c);

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

6.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。

if(x>y)z=x;x=y;y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

7.以下程序的运行结果是()。

main()

{intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);}

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

8.以下不正确的语句是()。

A)if(x>y);

B)if(x=y)&&(x!

=0)x+=y;

C)if(x!

=y)scanf(“%d”,&x);elsescanf(“%d”,&y);

D)if(x

9.若w、x、y、z、m均为int型变量,则执行下面语句后的m值是()。

w=1;x=2;y=3;z=4;

m=(w

w:

x;

m=(m

m:

y;

m=(m

m:

z;

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

10.下面有关for循环的正确描述是()。

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体中,可包含多条语句,但必须用花括号括起来

11.若i为整数变量,则以下循环执行的次数是()。

for(i=2;i==0;)printf(“%d”,i--);

A)无限次B)0次C)1次D)2次

12.执行语句for(i=1;i++<4;);后变量i的值是()。

A)3B)4C)5D)不定

13.以下正确的说法是()。

A)continue语句的作用是结束整个循环的执行

B)只能在循环体和switch语句体使用break语句

C)在循环体使用break语句或continue语句的作用相同

D)在多层循环嵌套中退出时,只能使用goto语句

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

请在填入正确容

main()

{inty,f;

scanf(“%d”,&y);

if(y%400==0)f=1;

elseif(①)f=1;

else②;

if(f)printf(“%dis”,y);

elseprintf(“%disnot”,y);

printf(“aleapyear\n”);}

15.有四个数a,b,c,d要求按从大到小的顺序输出请在填入正确容

main()

{inta,b,c,d,t;

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

if(a

if(①){t=a;a=d;d=t;}

if(a

if(②){t=b;b=c;c=t;}

if(b

if(c

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

16.以下程序的功能是()。

从键盘输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

main()

{floatx,amax,amin;

scanf(“%f”,&x);

amax=x;

amin=x;

while(①)

{if(x>amax)amax=x;

if(②)amin=x;

scanf(“%f”,&x);}

printf(“\namax=%f\namin=%f\n”,amax,amin);

}

17.以下程序的功能是计算1-3+5-7+……-99+101的值,请填空。

main()

{inti,t=1,s=0;

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

{①;s=s+t;②;}

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

}

或:

main()

{inti,t=1,s=0;

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

{s=s+t*i;③;}

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

}

18.若用0至9之间不同的三个数构成一个三位数,下面程序统计出共有多少种方法。

请填空。

main()

{inti,j,k,count=0;

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

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

if(①)continue;

elsefor(k=0;k<=9;k++)

if(②)count++;

printf(“%d”,count);

}

19.下面的程序功能是打印100以个位数为6,且能被3整除的所有数。

请填空。

main()

{inti,j;

for(i=0;①;i++)

{j=i*10+6;

if(②)continue;

printf(“%d”,j);}}

三、C语言数组练习

(一)选择题

1.以下对C语言字符数组的描述错误的是()。

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

B)字符数组中的字符串可以整体输入、输出

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

D)不可以用关系运算符对字符数组中的字符串进行比较

2.不能把字符串Hell0!

赋给数组b的语句是()。

A)charb[10]={‘H’,’e’,’l’,’l’,’o’,’!

’};

B)charb[10];b=”Hello!

”;

C)charb[10]={‘H’,’e’,’l’,’l’,’o’,’!

’,’\0’};

D)charb[10]=“Hello!

”;

3.合法数组定义是()。

A)inta[]=”string”;B)inta[5]={0,1,2,3,4,5};

C)chara=”string”;D)chara[]={0,1,2,3,4,5};

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

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}};

5.若有说明inta[3][4]={0};则下面正确的叙述是()。

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

B)此说明语句不正确

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

D)数组a中各元素都可得到初值0

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

A)整型常量B)整型表达式

C)整型常量和整型表达式D)任何类型的表达式

7.以下对一维整型数组a的正确说明是()。

A)inta(10);B)intn=10,a[n];

C)intn;D)#defineSIZE10

scanf(“%d”,&n);inta[SIZE];

inta[n];

8.若有说明inta[10];则对a数组元素的正确引用是()。

A)a[10]B)a[3.5]C)a(5)D)a[10-10]

9.以下对二维数组a的正确说明是()。

A)inta[3][];B)floata(3,4);

C)doublea[1][4];D)floata(3)(4);

10.若有说明inta[3][4];则对a数组元素的正确引用是()。

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a

(2)

(1)

11.若有说明inta[3][4];则对a数组元素的非法引用是()。

A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]

12.对inta[10]={6,7,8,9,10};说明语句的正确理解是()。

A)将5个初值依次赋给a[1]至a[5],其余元素赋0值;

B)将5个初值依次赋给a[0]至a[4],其余元素赋0值;

C)将5个初值依次赋给a[6]至a[10],其余元素赋0值;

D)因为数组长度与初值的个数不相同,所以此语句不正确;

13.定义如下变量和数组intk;inta[3][3]={1,2,3,4,5,6,7,8,9};

则执行for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);语句的输出结果是()。

A)357B)369C)159D)147

14.判断字符串a和b是否相等,应当使用()。

A)if(a==b)B)if(a=b)C)if(strcpy(a,b))D)if(strcmp(a,b))

15.判断字符串s1是否大于字符串s2,应当使用()。

A)if(s1>s2)B)if(strcmp(s1,s2))

C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)

16.下面程序段的功能是将字符串s中所有的字符c删除。

请选择填空。

#include

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!

=‘\0’;i++)

if(s[i]!

=‘c’);

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]

17.有两个字符型数组a,b,则以下正确的输入格式是()。

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

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

18.对两个数组a和b进行如下初始化,

chara[]={‘A’,’B’,’C’,’D’,’E’,’F’};

charb[]=”ABCDEF”;

则以下叙述正确的是()。

A)a与b数组完全相同B)a与b数组长度相同

C)a与b中都存放字符串D)b数组比a数组长度长

(二)填空题

1.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其它元素不变。

请填空。

#include

main()

{chara[]=“labchmfye”,t;

inti,j;

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

for(j=i+2;j<9;

if(

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

puts(a);printf(“\n”);}

2.下面程序以每行4个数据的形式输出a数组,请填空。

#defineN20

main()

{inta[N],i;

for(i=0;i

);

for(i=0;i

{if(

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

printf(“\n”);}

3.下面程序是分别求出矩阵a的两条对角线上的元素之和。

请填空。

main()

{inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;

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

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

if(i==j)sum1=sum1+a[i][j];

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

for(①;②;j--)

if((i+j)==2)sum2=sum2+a[i][j];

printf(“sum1=%d,sum2=%d\n”,sum1,sum2);}

4.下面程序功能是检查一个二维数组是否对称(即对所有ij都有a[i][j]=a[j][i])。

请填空。

main()

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

inti,j,found=0;

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

for(①;i<4;i++)

if(a[j][i])!

=a[i][j]

{②;break;}

if(found)printf(“no”);

elseprintf(“yes”);}

5.下面的程序段将输出computer,请填空。

charc[]=“It’sacomputer”;

for(i=0;①;i++)

{②;printf(“%c”,c[j]);}

6.下面的程序功能是在三个字符串中找出最小的。

请填空。

#include

#include

main()

{chars[20],str[3][20];inti;

for(i=0;i<3;i++)gets(str[i]);

strcpy(s,①);

if(strcmp(str[2],s)<0)strcpy(s,str[2]);

printf(“%s\n”,②);}

7.若有定义inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是①,a[2][1]得到的初值是②。

8.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。

请填空。

main()

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

intk,s,i;floatave;

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

{if(a[i]%2!

=0)①;

s+=②;

k++;}

if(k!

=0){ave=(float)s/k;printf(“%d,%f\n”,k,ave);}}

9.下面程序段的运行结果是()。

charx[]=”theteacher”;i=0;

while(x[++i]!

=‘\0’)

if(x[i-1]==‘t’)printf(“%c”,x[i]);

10.下面程序段是输出两个字符串中对应字符相等的字符。

请填空。

charx[]=”programming”;

chary[]=”Fortran”;

inti=0;

while(x[i]!

=‘\0’&&y[i]!

=‘\0’)

{if(x[i]==y[i])printf(“%c”,);

elsei++;}…

四、C语言函数与编译预处理练习

(一)选择题

1.有以下函数调用语句,其实参数的个数是()。

fun(a+b,(x,y),fun(n+k,d,(a,b)));

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

2.C语言规定,程序中各函数之间()。

A)既允许直接递归调用又允许间接递归调用

B)不允许直接递归调用也不允许间接递归调用

C)允许直接递归调用但不允许间接递归调用

D)不允许直接递归调用但允许间接递归调用

3.C语言中,函数的隐含存储类别是()。

A)autoB)staticC)externD)无存储类别

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

A)externB)registe

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

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2