第3章 基本语句.docx

上传人:b****8 文档编号:8981978 上传时间:2023-05-16 格式:DOCX 页数:25 大小:26.55KB
下载 相关 举报
第3章 基本语句.docx_第1页
第1页 / 共25页
第3章 基本语句.docx_第2页
第2页 / 共25页
第3章 基本语句.docx_第3页
第3页 / 共25页
第3章 基本语句.docx_第4页
第4页 / 共25页
第3章 基本语句.docx_第5页
第5页 / 共25页
第3章 基本语句.docx_第6页
第6页 / 共25页
第3章 基本语句.docx_第7页
第7页 / 共25页
第3章 基本语句.docx_第8页
第8页 / 共25页
第3章 基本语句.docx_第9页
第9页 / 共25页
第3章 基本语句.docx_第10页
第10页 / 共25页
第3章 基本语句.docx_第11页
第11页 / 共25页
第3章 基本语句.docx_第12页
第12页 / 共25页
第3章 基本语句.docx_第13页
第13页 / 共25页
第3章 基本语句.docx_第14页
第14页 / 共25页
第3章 基本语句.docx_第15页
第15页 / 共25页
第3章 基本语句.docx_第16页
第16页 / 共25页
第3章 基本语句.docx_第17页
第17页 / 共25页
第3章 基本语句.docx_第18页
第18页 / 共25页
第3章 基本语句.docx_第19页
第19页 / 共25页
第3章 基本语句.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第3章 基本语句.docx

《第3章 基本语句.docx》由会员分享,可在线阅读,更多相关《第3章 基本语句.docx(25页珍藏版)》请在冰点文库上搜索。

第3章 基本语句.docx

第3章基本语句

第3章基本语句

1、若变量已正确定义并赋值,以下不能构成C语句的选项是

A)B++;B)A=a+b;C)a=a+bD)A?

a:

b;

参考答案:

C

【解析】C语言规定,C语句必须以分号";"结束。C选项中没有结束符号,所以错误。

2、以下叙述中正确的是

A)复合语句在语法上包含多条语句,其中不能定义局部变量

B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的

C)空语句就是指程序中的空行

D)当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改

参考答案:

D

【解析】复合语句可以包含多条语句,在其中可以定义局部变量,所以A错误。花括号对{}不仅用来表示函数的开头和结尾,也可以用于表示复合语句,所以B错误。C语言中的语句必须以分号";"结束,所以空语句表示为";",不是空行,所以C错误。

3、以下叙述正确的是

A)C程序总是以main()作为程序执行的起始行

B)main()函数若不带参数,其后面的一对圆括号可省略

C)函数体内的定义语句和可执行语句允许任意穿插出现

D)C语言中的语句之间必须用分号作为分隔符

参考答案:

A

【解析】main()函数后面的括号告诉编译器这是一个函数,不可以省略,排除B选项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C选项;C语言中的某些语句可以不用分号,例如if语句,故D选项错误;答案为A选项。

4、以下叙述中正确的是

A)在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符

B)只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度

C)scanf函数中的字符串,是提示程序员的,输入数据时不必管它

D)复合语句也被称为语句块,它至少要包含两条语句

参考答案:

A

【解析】在printf和scanf函数中都可以指定数据的宽度,所以B错误。scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配,所以C错误。复合语句可以由任意多条语句构成,可以使一条也可以没有,所以D错误。

5、以下选项中合法的C语言赋值语句是

A)++i;B)a=b=34C)a=3,b=9D)k=int(a+b);

参考答案:

A

【解析】赋值语句是在赋值表达式末尾加上分号构成的。

B、C选项缺少分号,不是合法语句。

D选项为强制类型转换赋值语句,但是int缺少括号,是非法语句。

++i;相当于i=i+1;,是合法赋值语句,A选项正确。

6、以下选项中正确的定义语句是

A)double,a,b;

B)doublea=b=7;

C)doublea;b;

D)doublea=7,b=7;

参考答案:

D

【解析】A选项中变量类型符double后面不能有逗号。B选项中变量b不能先使用再定义,应该写成选项D中的格式。C选项中变量a后面应该是逗号而不是分号。

7、以下程序段中的变量已定义为int类型

sum=pad=5;pAd=sum++,pAd++,++pAd;

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

程序段的输出结果是

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

参考答案:

C

【解析】自增和自减运算符的两种用法:

前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算:

后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。

逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。

逗号运算符的优先级低于赋值运算符。

程序执行过程为:

sum=5,pad=5;pAd=5,sum=6,pAd=6,pAd=7。

输出pad=5,C选项正确。

8、有以下程序

#include

main()

{charc;

c=getchar();

do{

putchar(c++);

}while((c=getchar())!

='#');

}

程序运行时从第一列开始输入:

abcdefg##<回车>,则输出结果是

A)bcdefgh$B)bcdefghC)abcdefg#D)abcdefg

参考答案:

D

【解析】运算符"++"放在变量后面时,先参与其他操作,再对变量+1。

putchar(c++)表示先输出当前c值,再对c值+1,当输入abcdef##时,在while语句中,程序输入"#",循环退出。

因此输出为abcdefg,答案为D选项。

9、有以下程序

#include

charfun(char*c)

{

if(*c<='Z'&&*c>='A')

*c-='A'-'a';

return*c;

}

main()

{

chars[81],*p=s;

gets(s);

while(*p)

{

*p=fun(p);

putchar(*p);

p++;

}

printf("\n");

}

若运行时从键盘上输入OPENTHEDOOR<回车>,程序的输出结果是

A)OPENTHEDOOR

B)oPENtHEdOOR

C)openthedoor

D)OpenTheDoor

参考答案:

C

【解析】字符串输入函数gets的功能是从标准输入设备键盘上输入一个字符串。

首先使指针变量p指向字符串的首字母,while循环语句中对字符串的每个字符进行fun函数操作。

fun函数的功能是,将字符串中的大写字母变小写字母。

将处理结果返回主函数,主函数通过putchar()字符输出函数进行输出。

因此C选项正确。

10、有以下程序

#include

main()

{

charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A)1245B)1256C)1278D)1267

参考答案:

A

【解析】Scanf按照格式字符进行输入,所以123与回车的值分别送入了c1、c2、c3、c4变量的存储空间。getchar()函数的功能是从键盘输入的字符串中读入一个字符,所以4送入了变量c5的存储空间,5送入了变量c6的存储空间。所以打印时结果为1245。

11、有以下程序

#include

charf(charx)

{returnx*x+'a';}

main()

{chara,b=0;

for(a=0;a<4;a+=1)

{b=f(a);putchar(b);}

}

则程序的输出结果是

A)abcdB)ABEJC)abejD)ABCD

参考答案:

C

【解析】该题目首先初始化变量a和b,通过for循环语句使a取值为0、1、2、3,f函数的功能是将a*a+'a'的值返回给b,即b为a、b、e、j。

最后通过字符输出函数putchar()将b输出。

因此C选项正确。

12、若有以下程序

#include

charf(charx)

{returnx*x%10+'0';}

main()

{chara;intb=0;

for(a=0;a<5;a+=1)

{b=f(a);putchar(b);}

}

则程序的输出结果是

A)014916B)01234C)01496D)00000

参考答案:

C

【解析】该题目中x*x%10即x和x相乘后,结果再对10求余操作。

主函数中通过for语句使变量a从0到4进行取值;当a=0时,调用函数f后,返回值为0赋给b,并且进行字符输出;当a=1时,返回值为1赋给b,并且进行字符输出;当a=2时,返回值为4赋给b,并且进行字符输出;当a=3时,返回值为9赋给b,并且进行字符输出;当a=4时,返回值为6赋给b,并且进行字符输出。

因此C选项正确。

13、有以下程序

#include

main()

{charc;

do{

c=getchar();

putchar(c);

}while(c!

='#');

printf("\n");

}

执行时如输入:

abcdefg##<回车>,则输出结果是

A)abcdefg#

B)abcdefg

C)abcdefg##

D)##

参考答案:

A

【解析】程序执行过程为:

读入一个字符存入缓存区,判断字符是否为"#",如不是,继续读入字符,直到读入的字符是"#",存入缓存区,退出循环,将缓冲区字符一个个输出,结果为abcdefg#,A选项正确。

14、有以下程序

#include

main()

{

charc;

while((c=getchar())!

='\n')

{

switch(c-'2')

{

case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

}

printf("\n");

}

程序运行后从第一列开始输入以下数据

2473<回车>

程序的输出结果是

A)668977

B)4444

C)6677877

D)68766

参考答案:

A

【解析】本题执行过程为:

输入c='2',c-'2'=0,首先匹配case0,依次输出6,6,后执行break语句,跳出分支结构;输入c='4',c-'2'=2,匹配case2,输出8,执行break语句,跳出分支结构;输入c='7',c-'2'=5,匹配default,输出9,执行break语句,跳出分支结构;输入c='3',c-'2'=1,匹配case1,依次输出7,7,执行break语句,跳出分支结构。

输入回车,结束循环。

A选项正确。

15、有如下程序

#include

voidget_put()

{

charch;

ch=getchar();

if(ch!

='\n')get_put();

putchar(ch);

}

main()

{

get_put();printf("\n");

}

程序运行时,输入1234<回车>,则输出结果是

A)1234B)4321C)4444D)1111

参考答案:

B

【解析】在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。

本题程序的执行过程为:

在输入1234<回车>的情况下,调用get_put()函数,getchar()读入1,在这次调用中的局部变量ch='1',if条件成立->调用get_put()函数,读入2,局部变量ch='2'->调用get_put()函数,读入3,局部变量ch='3'->调用get_put()函数,读入4,局部变量ch='4'->调用get_put()函数,读入回车,if条件不成立,返回执行每次调用函数中if语句后的输出语句,即依次输出4321。

B选项正确。

16、有如下程序

#include

main()

{

inti,*ptr;

intarray[5]={5,3,1};

for(ptr=array,i=0;i<5;i++,ptr++)

{

if(*ptr==0)

putchar('X');

else

putchar('A'+*ptr);

}

printf("\n");

}

程序运行后的输出结果是

A)FDBXXB)FFFXXC)FDBBBD)ABCDE

参考答案:

A

【解析】在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,则array={5,3,1,0,0}。

程序执行过程为:

执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出'X',如果不为0则按照字母表输出字符'A'后第array[i]个字符。

程序运行后的输出结果为:

FDBXX,A选项正确。

17、有以下程序

#include

intf(intx);

main()

{inta,b=0;

for(a=0;a<3;a+=1)

{b+=f(a);putchar('A'+b);}

}

intf(intx)

{returnx*x+1;}

程序运行后输出结果是

A)ABEB)BCDC)BDID)BCF

参考答案:

C

【解析】在函数main()中,第一次执行for循环时,b的值等于1,此时输出字母B;第二次执行for循环时,b的值等于3,此时输出字母D;第三次执行for循环时,b的值等于8,此时输出字母I。

因此C选项正确。

18、有如下程序

#include

main()

{

chara='3',b='A';

inti;

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

{

if(i%3)putchar(a+i);

elseputchar(b+i);

}

printf("\n");

}

程序运行后的输出结果是

A)A45D78B)ABC678C)34CD78D)34AB78

参考答案:

A

【解析】putchar函数是向标准输出设备上输出一个字符。

字符在内存中以ASCII码方式存储,可以与整数进行加减运算,但是要保证计算结果在0~255之间。

本题执行过程为:

i=0,i%3=0,if条件不成立执行else函数体,输出字符A;i=1,i%3=1,if条件成立输出字符4;i=2,i%3=2,if条件成立输出字符5;i=3,if条件不成立,输出字符D;i=4和i=5时,分别输出字符7与8;i=6退出for循环。

所以程序运行后输出结果为A45D78,A选项正确。

19、有如下程序

#include

main()

{

inti;

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

putchar('9'-i);printf("\n");

}

程序运行后的输出结果是

A)54321

B)98765

C)'9''8''7''6''5'

D)'43210'

参考答案:

B

【解析】putchar函数是向标准输出设备上输出一个字符。

字符在内存中以ASCII码方式存储,可以与整数进行加减运算,但是要保证计算结果在0~255之间。

本题执行过程为:

i=0,输出字符9,在i<5的情况下,依次输出字符8、7、6、5。

在i=5时,计数for循环。

最后显示在命令窗口结果为98765,B选项正确。

20、有如下程序

#include

main()

{

if('\0'==0)putchar('X');

if('0'==0)putchar('Y');

if('a'>'b')putchar('Z');

printf("\n");

}

程序运行后的输出结果是

A)XB)XYZC)YZD)Y

参考答案:

A

【解析】字符所占内存为一个字节,故其ASCII码值不能超过范围0~255,其中一些特殊字符'\0'的ASCII码为0,字符'0'ASCII码值为48,字符'a'ASCII码值为97,字符'b'ASCII码值为98。

putchar函数是向标准输出设备上输出一个字符。

程序执行过程为:

判断'\0'==0成立,输出X,判断'0'==0不成立,不输出,判断'a'>'b'不成立,不输出。

A选项正确。

21、以下不能输出小写字母a的选项是

A)printf("%c\n","a");

B)printf("%c\n",'A'+32);

C)putchar(97);

D)putchar('a');

参考答案:

A

【解析】字符是按照其ASCII形式存储的,其值不能超过范围0~255,否则不是合法的字符。

printf函数格式控制符%c以字符形式输出数据。

putchar函数将括号中参数以字符形式输出。

A选项"a"为字符串,不是单个字符,输出格式不正确,不能输出a,选择A选项。

字符'a'的ASCII码为97,字符'A'的ASCII码为65。

'A'+32即为'a',故B选项能输出a。

C、D选项putchar函数参数均为字符'a',均可正确输出a。

22、有如下程序

#include

main()

{

chara='0',b='a';

inti;

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

{

if(i%3)putchar(a+i);

elseputchar(b+i);

}

}

程序运行后的输出结果是

A)a12dB)ab3dC)10abD)11ac

参考答案:

A

【解析】if(i%3)表示i对3求余,如果不等于0,则执行putchar(a+i);否则执行putchar(b+i),可见,i=0时i%3=0执行putchar(b+i),此时b='a',以此类推,当i=1时,执行putchar(a+i),输出1;当i=2时,执行putchar(a+i),输出2;当i=3时,执行putchar(b+i)输出d,答案为A选项。

23、有如下程序

#include

main()

{

inti;

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

putchar('Z'-i);

}

程序运行后的输出结果是

A)'X''Y''Z''W''V'

B)VWXYZ

C)ZYXWV

D)'ABCDE'

参考答案:

C

【解析】putchar表示输出单个字符,putchar('Z'-i)表示输出'Z'转换成ASCII码后减去i后再转化成字符型数输出,在for循环中,i=0,1,2,3,4时,执行循环体,因此答案为C选项。

24、有如下程序

#include

intdisp(char*str)

{

while(*str)putchar(*str++);

return*str;

}

main()

{

printf("%d\n",disp("NAME"));

}

程序运行后的输出结果是

A)NAME0B)NAMEEC)NAMED)NAME\0

参考答案:

A

【解析】程序执行过程为:

调用函数disp,将字符串"NAME"首地址传给指针str,在while循环中,依次判断字符串中字符是否为'\0',不是'\0'则输出字符,否则结束循环。

当(*str)='\0'时,结束循环,返回字符'\0'的ASCII码0,并输出。

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

NAME0,A选项正确。

25、有如下程序

#include

main()

{

charch='M';

while(ch!

='K')

{

ch--;

putchar(ch);

}

printf("\n");

}

程序运行后的输出结果是

A)MNB)LKC)OPD)MM

参考答案:

B

【解析】字符之间做加减法,是用其ASCII码进行加减,但是不能超过范围0~255,否则不是合法的字符。

while循环语句一般形式为:

while(表达式){循环体},执行过程为,首先判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环。

程序执行过程为:

定义字符变量ch='M',判断ch!

='K'成立,ch='L',输出L;判断ch!

='K'成立,ch='K',输出K;判断ch!

='K'不成立,退出循环。

程序运行后的输出结果是LK,B选项正确。

26、有以下程序:

#include

main()

{ chara,b,c,d;

  scanf("%c%c",&a,&b);

  c=getchar();d=getchar();

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

}

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:

回车也是一个字符)

12

34

则输出结果是(  )。

A)12

34

B)12

C)1234

D)12

3

参考答案:

D

【解析】按照从键盘输入的数据可以判断字符1给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。

所以打印输出的结果为D)选项。

27、以下叙述中错误的是

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

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

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

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

参考答案:

B

【解析】本题考查字符处理函数和文件做操函数,属于基础知识,其中B选项getchar是用于从终端读入字符。

28、要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是

A)while(ch=getchar()='N')printf("%c",ch);

B)while((ch=getchar())!

='N')printf("%c",ch);

C)while(ch=getchar()=='N')printf("%c",ch);

D)while((ch=getchar())=='N')printf("%c",ch);

参考答案:

B

【解析】在C语言中等于号用"=="表示,一个"="表示赋值,所以A错误。C、D选项的含义都是如果输入的字符为"N",则打印输出,所以正好和题意相反。

29、以下不能将键盘输入的字符串:

Thisisastring<回车>读入到str中的程序段是

A)charstr[80];scanf("%s",str);

B)charstr[80];inti=0;while((str[i++]=getchar()

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

当前位置:首页 > 自然科学 > 物理

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

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