C章节测试题.docx

上传人:b****8 文档编号:10229108 上传时间:2023-02-09 格式:DOCX 页数:27 大小:26.90KB
下载 相关 举报
C章节测试题.docx_第1页
第1页 / 共27页
C章节测试题.docx_第2页
第2页 / 共27页
C章节测试题.docx_第3页
第3页 / 共27页
C章节测试题.docx_第4页
第4页 / 共27页
C章节测试题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C章节测试题.docx

《C章节测试题.docx》由会员分享,可在线阅读,更多相关《C章节测试题.docx(27页珍藏版)》请在冰豆网上搜索。

C章节测试题.docx

C章节测试题

C章节测试题

数据类型、运算符与表达式

一、选择题:

1.下列数据中属于“字符串常量”的是()

A)ABCB)“ABC”C)‘abc’D)‘a’

2.在PC机中,’\n’在内存占用的字节数是()

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

3.字符串”ABC”在内存占用的字节数是()

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

4.在C语言中,合法的长整形常数是()

A)0LB)7654321C)0.07654321D)2.3456e10

5.char型常量在内存中存放的是()

A)ASCII值B)BCD码值C)内码值D)十进制代码值

6.设m,n,a,b,c,d均为0,执行(m=n==b)||(n=c==d)后,m,n的值是()

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

7.设a为5,执行下列语句后,b的值不为2的是()

A)b=a/2B)b=6-(--a)C)b=a%2D)b=a>3?

2:

4

8.执行语句”x=(a=3,b=a--)后,x,a,b的值依次为()

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

9.设整形变量m,n,a,b均为1,执行”(m=a>b)&&(n=a>=b)”后m,n的值是()

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

10.设有inta=3;则执行语句a+=a-=a*a;后a的值是()

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

11.在以下一组运算符中,优先级最高的运算符是()

A)<=B)=C)%D)&&

12.设整形变量i的值为3,则计算表达式i---i后表达式的值是()

A)0B)1C)2D)出错

13.设整形变量a,b,c均为2,则表达式a+++b+++c++的结果是()

A)6B)9C)8D)出错

14.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()

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

15.设a=1,b=2,c=3,d=4,则表达式a

a:

c

a:

d的结果是()

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

16.下列表达式中符合C语言语法的赋值表达式是()

A)a=7+b+c=a+7B)a=7+b++=a+7

C)a=(7+b,b++,a+7)D)a=7+b,c=a+7

17.若有chara;intb;floatc;doubled;则表达式a*b+d-c值的类型是()

A)floatB)intC)charD)double

18.表达式10!

=9的值是()

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

二、填空题:

1.在内存中存储”A”要占用个字节,存储’A’要占用个字节。

2.C语言中符号常量的定义方法是。

3.定义变量的完整格式为。

4.运算符:

+、++、&&、<=中,优先级最高的是,最低的是。

5.设a=3,b=2,c=1,则a>b的值为,a>b>c的值为。

6.若a=10,b=20,则表达式!

a

7.若intx=1,y=2;则表达式1.0+x/y的值为。

8.若int型变量x=y=z=5;若执行x-=y–z后x=;若执行x%=y+z后x=;若执行x=(y>z)?

x+2:

x–2,3,2后x=;

9.表述20

程序控制语句

一、选择题:

1.设a为整形变量,不能正确表达数学关系10

A)10

C)a>10&&a<15D)!

(a<=10)&&!

(a>=15)

2.若inta=3,b=4,c=5;则表达式值为0的是()

A)‘a’&&’b’B)a<=bC)a||b+c&&b-cD)!

((a

c||1)

3.若charc=’A’;则c=(c>=’A’&&c<=’Z’)?

(c+32):

c的值是()

A)‘A’B)‘a’C)‘Z’D)‘z’

4.设a=3,b=4,执行“printf(”%d,%d”,(a,b),(b,a));”语句的输出是()

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

5.使用“scanf(”x=%f,y=%f”,&x,%y);”语句,要使x,y均为1.25,正确的输入是()

A)1.251.25B)1.251.25

C)x=1.25,y=1.25D)x=1.25y=1.25

6.设有inti=010,j=10;则printf(”%d,%d\n”,++i,j--);的输出是()

A)11,10B)9,10C)010,9D)10,9

7.设a,b为字符型变量,执行“scanf(”a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B’,从键盘上的正确输入是()

A)’A’‘B’B)’A’,‘B’C)A=A,B=BD)a=A,b=B

8.设x,y,z,t均为int型变量,则执行以下语句后,t的值为()

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

A)不定值B)2C)1D)0

9.执行以下语句后x的值是()

a=b=c=0;x=35;

if(!

a)x--;elseif(b);if(c)x=3;elsex=4;

A)34B)4C)35D)3

10.下面的程序段所表示的数学函数关系是()

y=-1;

if(x!

=0)if(x>0)y=1;elsey=0;

A)y=-1(x<0);0(x=0);1(x>0)

B)y=1(x<0);-1(x=0);0(x>0)

C)y=0(x<0);-1(x=0);1(x>0)

D)y=-1(x<0);1(x=0);0(x>0)

11.下列语句中,错误的是()

A)while(x=y)5;B)dox++while(x==10);

C)while(0);D)do2;while(a==b);

12.循环语句for(x=0,y=0;(y!

=123)||(x<4);x++);的循环次数为()

A)无限次B)不确定次C)4次D)3次

13.若有整型变量i,j;则以下程序段中内循环体的执行次数为()

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

for(j=0;j<4;j++){...}

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

14.假定a和b为int型变量,则执行以下语句后b的值为()

a=1;b=10;

do{b-=a;a++;}

while(b--<0);

A)9B)-2C)-1D)8

15.设x和y均为int型变量,则执行下面的循环后y的值为()

for(y=1,x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

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

16.在C语言中,下列说法中正确的是()

A)不能使用”do语句while(条件)”的循环

B)”do语句while(条件)”的循环必须使用”break”语句退出循环

C)”do语句while(条件)”的循环中,当条件为非0时结束循环

D)”do语句while(条件)”的循环中,当条件为0时结束循环

二、填空题:

1.结构化程序设计规定的三种基本结构是结构,结构和结构。

2.若有定义语句”inta=25,b=14,c=19;”,下面程序段被执行的结果是。

if(a++<=25&&b--<=2&&c++)

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

else

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

3.以下两条if语句可合并成一条if语句为。

if(a<=b)x=1;

elsey=2;

if(a>b)printf(“****y=%d\n”,y);

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

4.设i,j,k均为型变量,则执行如下语句后,k的值为。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

5.下列程序的功能是输入一个正整数,判断是否为素数,若为素数输出1,否则输出0,填空完成程序。

main()

{

inti,x,y;

scanf(“%d”,&x);

for(i=2;i<=x/2;i++)

if(){y=0;break;}

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

}

三、程序分析题:

1.阅读程序,写出运行结果

main()

{

inta=10,b=4,c=3;

if(a

if(a

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

}

2.阅读程序,写出运行结果

main()

{

intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

=15)if(!

ok1)x=1;

elseif(ok2)x=10;

elsex=-1;

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

}

3.阅读程序,写出运行结果

main()

{

inty=9;

for(;y>0;y--)

if(y%3==0){printf(“%d”,--y);cintinue;}

}

四、程序设计题:

1.编程序,输入一个整数,输出其符号(若≥0,输出1;若≤0,输出-1)。

2.编程序,输入三个单精度数,输出其中最小值。

3.输入一个正整数,是否既是5又是7的整倍数,若是,则输出Yes;否则输出No。

4.编程序,求出所有各位数字的立方和等于1099的3位整数。

5.编程序,输入10个整数,统计并输出其中正数、负数和零的个数。

6.编程序显示ASCII码0x20~0x6f的十进制数值及其对应字符。

7.打印输出“九九乘法口诀表”。

数组

一、选择题:

1.若有以下说明,则数值为4的表达式是()

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

charc=‘a‘,d,g;

A)a[g–c]B)a[4]C)a[‘d’-‘c’]D)a[‘d’–c]

2.设有定义:

chars[12]={“string”};则printf(“%d\n”,strlen(s));的输出是()

A)6B)7C)11D)12

3.下列语句中,正确的是()

A)chara[3][]={‘abc’,‘1’};B)chara[][3]={‘abc’,‘1’};

C)chara[3][]={‘a’,“1”};D)chara[3][]={“a”,“1”};

4.合法的数组定义是()

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

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

5.语句”printf(“%d\n”,strlen(“ats\no12\1\\”));”的输出结果是()

A)11B)10C)9D)8

6.函数调用”strcat(strcpy(str1,str2),str3)”的功能是()

A)将字符串str1复制到str2中后再连接到str3之后

B)将字符串str1连接到str2之后再复制到str3之后

C)将字符串str2复制到str1中后再将字符串str3连接到str1之后

D)将字符串str2连接到str1之后再将字符串str1复制到str3中

7.设有如下定义,则正确的叙述为( )

charx[]={“abcdefg”};

chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};

A)数组x和数组y等价B)数组x的长度大于数组y的长度

C)数组x和数组y长度相同  D)数组x的长度大于数组y的长度

二、填空题:

1.设有定义语句”staticinta[3][4]={{1},{2},{3}};”,则a[1][1]的值为(),a[2][1]的值为()

2.若杂程序中用到putchar()函数时,应在程序开头写上包含命令(),若在程序中用到strlen()函数时,应在程序开头写上包含命令(),

3.下面程序的功能是输出a数组中最大元素的下标,请填空。

main()

{

intk,p;

inta[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(a[p]>a[k])

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

}

4.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include“string.h”

main()

{

inti,j,k;

charstr[]={“1234567”};

for()

{k=str[i];str[i]=str[j];str[j]=k;}

}

5.以下程序可把输入的十进制长整型以十六进制的形式输出,请填空。

main()

{

charb[17]={“0123456789ABCDEF”};

intc[64],d,i=0,base=16;

longn;

printf(“Enteranumber:

\n”);

scanf(“%ld”,&n);

do{c[i]=;i++;n=n/base;}

while(n!

=0);

printf(“Transmitenewbase:

\n”);

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

{d=c[i];printf(“%c”,b);}

}

三、程序分析题:

1.阅读程序,写出运行结果:

main()

{

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

inti,j,s1=0,s2=0;

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

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

{

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

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

}

printf(“%d,%d\n”,s1,s2);

}

2.说明下列程序的功能。

main()

{

inti,j;

floata[3][3],b[3][3];

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

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

{scanf(“%f”,&x);a[i][j]=x;}

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

for(j=0;j<3;j++)b[j][i]=a[i][j];

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

{printf(“\n”);

for(j=0;j<3;j++)printf(“%f”,b[i][j]);

}

}

3.写出下列程序的运行结果。

main()

{

staticchara[]={‘*’,’*’,’*’,’*’,’*’};

inti,j,k;

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

{

printf(“\n”);

for(j=0;j

for(k=0;k

}

}

4.说明下列程序的功能:

main()

{

inti,j;

floata[3][3],b[3][3],c[3][3],x;

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

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

{scanf(“%f”,&x);a[i][j]=x;}

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

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

{scanf(“%f”,&x);b[i][j]=x;}

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

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

c[i][j]=a[i][j]+b[i][j];

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

{

printf(“\n”);

for(j=0;j<3;j++)printf(“%f”,c[i][j]);

}

}

四、程序设计题:

1.编程序,输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。

2.编程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。

3.编程序,输入两个字符串(<40个字符),连接后输出(要求:

不能使用系统提供的函数)

4.输入一个3×5的整数矩阵,输出其中最大值、最小值和它们的下标。

5.输入一个字符串,将其中的所有大写字母转化为小写字母,将所有小写字母转化为大写字母,然后输出。

6.编程序,输入一个整型数据,输出每位数字,其间用逗号分隔。

7.编程序,输入一个字符串,将其中所有的大写英文字母+3,小写英文字母-3,然后再输出加密后的字符串。

8.编程序,将上题中加密的字符串解密后输出。

指针

一、选择题:

1.设有定义”inta=3,b,*p=&a;”,则下列语句中使b不为的语句是()

A)b=*&a;B)b=*&p;C)b=a;D)b=*a;

2.设指针x指向的整型变量值为25,则printf(“%d\n”,++*x);的输出是()

A)23B)24C)25D)26

3.若有说明:

inti,j=7,*p=&i;则i=j;与等价的语句是()

A)i=p;B)*p=*&j;C)i=&j;D)i=**p;

4.若有说明:

inta[10],*p=a;对数组元素的正确引用是()

A)a[p]B)p[a]C)*(p+2)D)p+2

5.下面各语句行中,能正确进行赋字符串操作的语句是()

A)chara[5]={“ABCDE”};B)chars[5]={‘A’,’B’,’C’,;D’,’E’};

C)char*s;s=“ABCDEF”;D)char*s;scanf(“%s”,&s);

6.若有以下定义,则不能表示a数组元素的表达式是()

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

A)*pB)a[10]C)*aD)a[p-a]

7.若有以下定义,则值为3的表达式是()

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

A)p+=2,(p++)B)p+=2,++pC)p+=3,*p++D)p+=2,++*p

8.执行语句”chara[10]={“abcd”},p=a;”后,*(p+4)的值是()

A)”abcd”B)’d’C)’\0’D)不能确定

9.设有定义语句”int(*ptr)[10];”,其中ptr的是()

A)10个指向整型变量的指针

B)指向10个整型变量的函数指针

C)一个指向具有10个元素的一维数组的指针

D)具有10个指针元素的一维数组

10.若有以下定义,则数值为4的表达式是()

intw[3][4]={{0,1},(2,4),{5,8}},(*p)[4]=w;

A)*w[1]+1B)p++,*(p+1)C)w[2][2]D)p[1][1]

11.若有下面的程序片段,则对数组元素的错误引用是()

inta[12]={0},*p[3],**pp,i;

for(i=0;i<3;i++)p[i]=&a[i+4];

pp=p;

A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)

12.若有如下定义和语句,则输出结果是()

int**pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;

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

当前位置:首页 > 初中教育 > 科学

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

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