C语言习题集含答案.docx

上传人:b****3 文档编号:27415378 上传时间:2023-06-30 格式:DOCX 页数:27 大小:29.74KB
下载 相关 举报
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语言习题集含答案

一、单选题:

<1>在C语言提供的合法的关键字是〔〕

A>swicthB>cherC>CaseD>default

<2>在C语言中,合法的字符常量是〔〕

A>'\084'B>'\x43'C>'ab'D>"\0"

<3>若有定义和语句:

chars[10]:

s="abcd";printf<"%s\n",s>;

则结果是<以下u代表空格>〔〕

A>输出abcdB>输出a

C>输出abcduuuuuD>编译不通过

<4>若有定义和语句:

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

pp=&p;p=&a;p=&b;printf<"%d,%d\n",*p,**pp>;

则输出结果是:

〔〕

A>10,20B>10,10C>20,10D>20,20

<5>若有以下定义和语句:

intu=010,v=0x10,w=10;

printf<"%d,%d,%d\n",u,v,w>;

则输出结果是<>

A>8,16,10B>10,10,10C>8,8,10D>8,10,10

<6>若有以下定义和语句

charc1='b',c2='e';

printf<"%d,%c\n",c2-c1,c2-'a'+"A">;

则输出结果是<>

A>2,MB>3,E

C>2,E?

D>输出项与对应的格式控制不一致,输出结果不确定

<7>若有以下定义:

chars[20]="programming",*ps=s;

则不能代表字符o的表达式是<>

A>ps+2B>s[2]C>ps[2]D>ps+=2,*ps

<8>若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是<>

for

for{...}

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

<9>若有以下定义和语句:

char*s1="12345",*s2="1234";

printf<"%d\n",strlen>>;

则输出结果是<>

A>4B>5C>9D>10

<10>若有以下定义和语句:

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

则不能表示a数组元素的表达式是<>

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

<11>下面程序的输出是<>

main<>

{char*s="121";

intk=0,a=0,b=0;

do

{k++;

if{a=a+s[k]-'0';continue;}

b=b+s[k]-'0';a=a+s[k]-'0';

}

while;

printf<"k=%da=%db=%d\n",k,a,b>;

A>k=3a=2b=3B>k=3a=3b=2

C>k=2a=3b=2D>k=2a=2b=3

<12>下面程序的输出是<>

main<>

{unsigneda=32768;

printf<"a=%d\n",a>;

}运行结果:

-32768

A>a=-32768B>a=32767

C>a=-32767D>a=-1

<13>若有以下定义:

floatx;inta,b;则正确的switch语句是<>

A>switchB>switch

{case1.0:

printf<"*\n">;{case1,2:

printf<"*\n">;

case2.0:

printf<"**\n">;case3:

printf<"**\n">;

}}

C>switchD>switch;

{case1:

printf<"\n">;{case1:

printf<"*\n">;

case1+2:

printf<"**\n">;case2:

printf<"**\n">;

}}

<14>以下程序输出的结果是<>

main<>

{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for

printf<"%s\n",&w[k][k]>;

}

A>ABCDB>ABCD

FGHEFG

KLIJ

M

C>EFGD>FGH

JKKL

O

<15>若数组名作实参而指针变量作形参,函数调用实参传给形参的是<>

A.数组的长度B.数组第一个元素的值

C.数组所有元素的值D.数组第一个元素的地址

<16>若变量已正确定义并赋值,下面符合C语言语法的表达式是<>

A>a:

=b+1B>a=b=c+2C>int18.5%3D>a=a+7=c+b

<17>C语言中运算对象必须是整型的运算符是<>A>%=B>/C>=D>〈=

<18>若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是<>A>1B>2C>2.0D>2.5

<19>若变量a、i已正确定义,且i已正确赋值,合法的语句是<>

A>a==1B>++i;C>a=a++=5;D>a=int;

<20>若有以下程序段,

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3中的值是<>A>0B>0.5C>1D>2

<21>有如下程序

main<>{inty=3,x=3,z=1;printf<"%d%d\n〞,<++x,y++>,z+2>;

}

运行该程序的输出结果是<>

A>34B>42C>43D>33

<22>能正确表示逻辑关系:

"a≥=10或a≤0”的C语言表达式是<>A>a>=10ora<=0B>a>=0|a<=10

C>a>=10&&a<=0D>a>=10||a<=0

<23>有如下程序

main<>

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

switch

{case0:

b++;

case1:

a++;case2:

a++;b++;}

printf<"a=%d,b=%d\n〞,a,b>;}

该程序的输出结果是<>A>a=2,b=1B>a=1,b=1C>a=1,b=0D>a=2,b=2

<24>有如下程序

main<>

{floatx=2.0,y;

ify=0.0;

elseify=1.0/x;

elsey=1.0;

printf<"%f\n〞,y>;}

该程序的输出结果是<>

A>0.000000B>0.250000C>0.500000D>1.000000

<26>有如下程序

main<>

{inti,sum;

forsum+=i;

printf<"%d\n〞,sum>;

}

该程序的执行结果是<>A>6B>3C>死循环D>0

<27>有如下程序

main<>

{intx=23;

do

{printf<"%d〞,x-->;}while

x>;}

该程序的执行结果是<>A>321B>23C>不输出任何内容D>陷入死循环

<28>有如下程序

main<>

{intn=9;

while6>{n--;printf<"%d〞,n>;}}

该程序段的输出结果是<>

A>987B>876C>8765D>9876

<29>设有说明语句:

chara=’\72’;则变量a<>A>包含1个字符B>包含2个字符

C>包含3个字符D>说明不合法

<30>有如下函数调用语句

func;

该函数调用语句中,含有的实参个数是<>A>3B>4C>5D>有语法错

<31>有如下程序

intfunc

{return;}

main<>

{intx=2,y=5,z=8,r;

r=func,z>;

printf<"%\d\n〞,r>;}

该程序的输出的结果是<>

A>12B>13C>14D>15

<32>有如下程序段

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

p=&a;a=*p+b;

执行该程序段后,a的值为<>

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

<33>对于基类型相同的两个指针变量之间,不能进行的运算是<>A>=C>+D>-

<34>有如下程序

longfib

{if2>return+fib>;

elsereturn<2>;

}

main<>

{printf<"%d\n〞,fib<3>>;}

该程序的输出结果是<>

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

<35>在C语言中,函数的隐含存储类别是<>A>autoB>staticC>externD>无存储类别

<36>有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main<>

{inti;

forprintf<"%d\n〞,i>;

}

该程序中的for循环执行的次数是<>

A>5B>6C>7D>8

<37>有以下函数

charfun

{returnp;}

该函数的返回值是<>A>无确切的值B>形参p中存放的地址值B>一个临时存储单元的地址D>形参p自身的地址值

<38>有如下程序段

inta=14,b=15,x;

charc=’A’;

x=&&;

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

A>trueB>falseC>0D>1

<39>有如下说明

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

则数值为9的表达式是<>

A>*p+9B>*C>*p+=9D>p+8

<40>若有以下的定义:

intt[3][2];能正确表示t数组元素地址的表达式是<>A>&t[3][2]B>t[3]C>t[1]D>t[2]

<41>有如下程序

main<>

{charch[2][5]={"6937”,〞8254”},*p[2];

inti,j,s=0;

forp[i]=ch[i];

for

for’\0’;j+=2>

s=10*s+p[i][j]-‘0’;

printf<"%d\n〞,s>;}

该程序的输出结果是<>

A>69825B>63825C>6385D>693825

<42>若有以下的定义:

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

则值为3的表式是<>

A>p+=2,*B>p+=2,*++p

C>p+=3,*p++D>p+=2,++*p

<43>假定所有变量均已正确说明,下列程序段运行后x的值是<>

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

if

a>x--;

elseif;ifx=3;elsex=4;

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

<44>在以下一组运算符中,优先级最高的运算符是<>

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

<45>若有以下定义和语句:

intw[2][3],<*pw>[3];pw=w;

则对w数组元素非法引用是<>

A>*=*w[0][2]B>*[2]

C>pw[0][0]=*w[0][0]D>*=*w[1][2]

<46>若有以下程序片段:

charstr[]="ab\n\012\\\"";

printf<"%d\n",strlen>;

上面程序片段的输出结果是<>

A>3B>4C>6D>12

<47>函数调用strcat,str3>的功能是<>

A>将串str1复制到串str2中后再连接到串str3之后

B>将串str1连接到串str2之后再复制到串str3之后

C>将串str2复制到串str1中后再将串str3连接到串str1之后

D>将串str2连接到串str1之后再将串str1复制到串str3中

<48>以下对C语言函数的有关描述中,正确的是<>

A>在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B>C函数既可以嵌套定义又可以递归调用

解释:

C函数可以递归调用,但不允许嵌套定义

C>函数必须有返回值,否则不能使用函数

D>C程序中有调用关系的所有函数必须放在同一个源程序文件中

<49>以下叙述中不正确的是<>

A>在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.

B>在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.

C>在C中,外部变量的隐含类别是自动存储类别.

D>在C中,函数形参可以说明为register变量.

<50>以下程序的输出结果是<>

#definesub1{charc;c=a;a=b;b=c;}

#definesub2{charc;c=*a;*a=b;b=c;}

#definesub3{charc;c=*a;*a=*b;*b=c;}

main<>

{chara,b;

a='A';b='B';sub3<&a,&b>;putchar;putchar;

a='A';b='B';sub2<&a,b>;putchar;putchar;

a='A';b='B';sub1;putchar;putchar;

}

A>BABBABB>ABBBBA

C>BABABAD>BAABBA

<51>错误的转义字符是<>

A>'\091'B>'\\'C>'\0'D>'\''

<52>设inta,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是<>

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

<53>在C语言中,错误的常数是<>

A>1E+0.0B>5C>0xafD>0L

<54>设intk;则语句for;和

语句for;执行的次数分别是<>

A>无限和0B>0和无限C>都是无限D>都是0

<55>某文件中定义的静态全局变量<或称静态外部变量>其作用域是<>

A>只限某个函数B>本文件C>跨文件D>不限制作用域

二、程序填空题:

<10>函数pi的功能是根据以下近似公式求π值:

<π*π>/6=1+1/<2*2>+1/<3*3>+…+1/

现在请你在下面的函数中填空,完成求π的功能。

#include"math.h〞

doublepi

{doubles=0.0;longi;

fors=s+1.0/;

return>;}

<14>以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.

voidfun

{inti,p;

p=0;

w[*n]=x;

whilew[p]>p++;

forp;i-->w[i]=w[i-1];

w[p]=x;

++*n;

}

<15>fun1函数的调用语句为:

fun1<&a,&b,&c>;它将三个整数按由大到小的顺序调整后依次放入a,b,c三个变量中,a中放最大数。

请填空.

voidfun2

{intt;

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

}

voidfun1

{if<*pc>*pb>fun2

if<*pa<*pc>fun2;

if<*pa<*pb>fun2

}

16.任意输入三条边后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。

main<>{floata,b,c,a2,b2,c2;scanf<"%f%f%f",&a,&b,&c>;printf<"%5.1f,%5.1f,%5.1f",a,b,c>;ifc&&b+c>a&&a+c>b>{ifprintf<"DY">;ifprintf<"DB">;a2=a*a;b2=b*b;c2=c*c;ifprintf<"ZJ">;printf<"\n">;}elseprintf<"NO\n">;}

17.输出下列图形。

12345678923456789

3456789456789567896789789899

main<>

{inti,j;for

{forprintf<"%2d",j>;

printf<"\n">;}}

三、程序分析题

阅读下列程序,将输出结果分别写到各题右侧的空白处。

16.main<>

{inta=3,b=9,c=2;

ififprintf<"%5d%5d%5d\n",a,b,c>;}

程序运行结果:

ﺏﺏﺏﺏ3ﺏﺏﺏﺏ9ﺏﺏﺏﺏ217.voidchange

{intt;

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

main<>

{inta=3,b=5;

change<&a,b>;

printf<"a=%d,b=%d\n",a,b>;}

程序运行结果:

a=5,b=5

18.main<>

{intj;

for=2;j-->

switch

{case0:

printf<"%4s","ABC">;

case1:

printf<"%4s","DEF">;

case2:

printf<"%4s","GHI">;break;case3:

printf<"%4s","JKL">;

default:

printf<"%4s","MNO">;

}

printf<"\n">;

}程序运行结果:

ﺏMNOﺏJKLﺏMNOﺏGHI

19.main<>

{staticintj,a[6]={1,2};

for

a[j]=a[j/2]+a[j%3]-a[j-2];

for

printf<"%5d",a[j]>;printf<"\n">;}

程序运行结果:

ﺏﺏﺏﺏ1ﺏﺏﺏﺏ2ﺏﺏﺏﺏ0ﺏﺏﺏﺏ1ﺏﺏﺏﺏ2ﺏﺏﺏﺏ-1

20.inta=10;intf{intb=0;staticintc=3;a++;++c;++b;returna+b+c;}main<>{inti;forprint<"%5d",f>;printf<"\n">;}

程序运行结果:

ﺏﺏﺏ16ﺏﺏﺏ17

21.#defineN2#defineMN+1#defineNUM2*M+1intfib{returnn<3?

2:

fib+fib;}main<>{printf<"%5d%5d\n",NUM,fib<5>>;}

程序运行结果:

ﺏﺏﺏﺏ6ﺏﺏﺏ10

22.假设在DOS提示符下显示源程序如下

盘中>:

C:

\>typePROC.cmain{while<--argc>0>printf<"%s",argv[argc]>;printf<"\n">;}写出执行下列命令后的输出结果C:

\>PROG2008OLYMPICBEIJING<回车>

程序运行结果:

BEIJINGOLYMPIC2008

二级C语言笔试试题与参考解答

一、选择题:

1、1MB等于〔〕A>1000字节B>1024字节

C>1000*1000字节D>1024*1024字节2、与十六进制数200等值的十进制数为〔〕

A>256B>512C>1024D>2048

3、所谓"裸机"是指〔〕A>单片机B>单板机

C>不装备任何软件的计算机D>只装备操作系统的计算机4、能将高级语言编写的源程序转换为目标程序的是〔〕A>程序B>解释程序C>编译程序D>编辑程序5、在64位计算机中,一个字长所占字节数为〔〕

A>64B>8C>4D>1

6、在Windows环境下,当一个应用程序窗口被最小化后,该应用程序〔〕A>继续在后台运行B>继续在前台运行C>终止运行D>暂停运行7、在Windows环境下,能实现窗口移动的操作是〔〕A>用鼠标拖动窗口中的任何部位B>用鼠标拖动窗口的边框C>用鼠标拖动窗口的控制按钮D>用鼠标拖动窗口的标题栏8、在Windows环境下,PrintScreen键的作用是〔〕A>打印当前窗口的内容B>打印屏幕内容C>复制屏幕到剪贴板D>复制当前窗口到剪贴板9、Internet的通信协议是〔〕

A>TCP/IPB>BBSC>WWWD>FTP

10、下列叙述中正确的是〔〕A>计算机病毒只感染可执行文件B>计算机病毒只感染文本文件C>计算机病毒只能通过软件复制的方式进行传播D>计算机病毒可以通过网络或读写磁盘方式进行传播11、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是〔〕A>有零个或多个输入B>有零个或多个输出C>有穷性D>可行性

12、以下叙述中正确的是〔

展开阅读全文
相关搜索

当前位置:首页 > 人文社科 > 文学研究

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

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