C语言12章课后题.docx

上传人:b****9 文档编号:26334238 上传时间:2023-06-17 格式:DOCX 页数:28 大小:25.90KB
下载 相关 举报
C语言12章课后题.docx_第1页
第1页 / 共28页
C语言12章课后题.docx_第2页
第2页 / 共28页
C语言12章课后题.docx_第3页
第3页 / 共28页
C语言12章课后题.docx_第4页
第4页 / 共28页
C语言12章课后题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言12章课后题.docx

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

C语言12章课后题.docx

C语言12章课后题

第一章C语言概述课后题

一、选择题

1、一个C语言程序总是从()。

A、主过程开始执行

B、主函数开始执行

C、子程序开始执行

D、主程序开始执行

2、C语言能直接执行的程序是()。

A、源程序

B、汇编程序

C、目标程序

D、可执行程序

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

A、C语言程序中的注释部分可以出现在程序中任意合适的地方

B、花括号“{”和“”只能作为函数体的定界符

C、构成C语言程序的基本组成单位是函数,所有函数名都可以由用户命名

D、分号是C语言语句之间的分隔符,不是语句的一部分

4、以下选项中,不合法的C语言程序函数体是()。

A、{;}

B、{}

C、{printf(“computer”);}

D、{inta=1;}

5、要把高级语言编写的源程序转换为目标程序,需要使用()。

A、编辑程序

B、驱动程序

C、编译程序

D、诊断程序

二、填空题

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

2、C语言源程序文件名的后缀是(),经过编译后生成的目标文件名的后缀是(),经过链接之后生成的可执行文件名的后缀是()。

3、计算机语言包括()、()和()。

其中计算机能够直接识别的语言是(),()很接近人们习惯使用的自然语言和数学语言。

4、按照结构化程序设计原则,常见的程序基本结构有()、()和()。

5、循环结构包含()循环和()循环。

三、简单题

1、什么是程序?

什么是程序设计?

2、解释源程序、目标程序和可执行程序的含义。

3、写出C语言的特点。

四、编程题

1、参照本章例题,编写一个C语言程序,输出以下信息:

happynewyear!

2、参照本章例题,编写程序求两个数中的较小值。

第二章C语言程序设计基础课后题

一、选择题

1、以下选项中,正确的整型数据是()。

A、1.2

B、-123

C、723456

D、567890

2、下面字符常量的表达形式中正确的是()。

A、“Z”

B、“\’

C、‘1’

D、‘\378’

3、ch为字符型变量,执行语句“ch=’C’+‘5’-‘4’;”,将ch按字符类型输出的结果是()。

A、D

B、68

C、56

D、不确定的值

4、C语言中要求运算对象必须是整型数据的运算符是()。

A、++

B、--

C、%

D、/

5、变量a为整型、b为实型、c为双精度型、d为字符型,则表达式a=a*b+d-c的类型是()。

A、整型

B、实型

C、双精度型

D、字符型

6、有以下定义语句,编译时会出现编译错误的是()。

A、chara=’a’;

B、chara=’\n’;

C、chara=’aa’;

D、chara=’\x2d’;

7、设有语句“inta=3;”,执行语句printf(“%d%d”,a+1,a++);后输出的值是()。

A、43

B、34

C、44

D、33

二、填空题

1、在C语言中(以16位计算机为例),一个char型数据在内存中所占的字节数为(),其数值范围是();一个int型数据在内存中所占的字节数为(),其数值范围是();一个long型数据在内存中所占的字节数为(),其数值范围是();一个float型数据在内存中所占字节数为(),其数值范围是()。

2、字符常量使用一对()界定单个字符,而字符串常量使用一对()来界定若干个字符的序列。

3、设“floatx=2.5;inta=7;floaty=4.7;”,则表达式x+a%3*(int)(x+y)%2/4的值为()。

4、已知“chara=’a’,b=’b’,c=’c’,i;”,则表达式i=a+b+c的值为()。

5、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()。

6、若有定义“intm=5,n=3;”,则表达式m/=n+4的值是(),表达式m=(m=1,n=2,n-m)的值是(),表达式m+=m-=(m=1)*(n=2)的值是()。

三、简答题

1、简述’a’和”a”的区别。

2、已知,“intm=12,m=15;”,为什么整型变量m的值在运算后不是当初的12,而是15?

3、将下面各数用八进制和十六进制数表示。

十进制数:

32-1-327682002-1280

八进制数:

十六进制数:

4、写出以下程序的运行结果

intmain()

{

charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

return0;

}

5、写出以下程序的运行结果。

intmain()

{

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

return0;

}

四、编程题

已知“intx=10,用2;”,写出将x和y的值相互交换的语句。

测试一

一、单项选择题

1、以下描述中正确的是()

A、C语言程序的执行是从main函数开始的,到程序的最后一个函数结束

B、C语言程序的执行是从第一个函数开始的,到程序的最后一个函数结束

C、C语言程序的执行是从main函数开始的,到程序的main函数结束

D、C语言程序的执行是从第一个函数开始的,到程序的main函数结束

2、若有语句“chara;”,并要将字符a赋给变量a,则下列赋值表达式正确的是()。

A、a=’a’;

B、a=’a’;

C、a=”97”;

D、a=’97’;

3、若有语句“inta=5;”,则执行语句“a++a*=10;”后,a的值是()。

A、55

B、100

C、60

D、105

4、设有“intx=11;”,则表达式(x++*1/3)的值是()。

A、3

B、4

C、11

D、12

5、能正确表达逻辑关系“a>=10”或“a<=0”的C语言表达式是()。

A、a>=10ora<=0

B、a>=0|a<=10

C、a>=10&&a<=0

D、a>=10||a<=0

6、已有定义“intx=3,y=4;”,则表达式x>y&&y的值是()

A、true

B、0

C、false

D、1

7、有如下语句,则当x=5是,c的值是()

intc=5,x;

scanf(“%d”,&x);

switch(x+1)

{

case6:

c++;

case8:

c++;break;

default:

c+=3;

}

printf(“%d”,c);

A、6

B、7

C、8

D、语法错误

8、若有以下程序,则语句a=a+1执行的次数是()

intmain()

{

intx=1,a=1;

do

{

a=a+1;

}

while(x);

return0;

}

A、0

B、1

C、无限次

D、有限次

9、以下程序的输出结果是()

intmain()

{

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

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

s+=a[i][j];

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

return0;

}

A、18

B、19

C、20

D、21

10、C语言中,二维数组在内存中的存放顺序是()

A、行优先

B、列优先

C、由编译系统决定

D、由用户决定

11、以下程序的输出结果是()

intmain()

{

charch[]={‘1’,’2’,’\0’,’3’,’4’,’\0’};

printf(“%s”,ch);

return0;

}

A、1234

B、12034

C、12

D、有语法错误

12、以下程序执行后输出的结果是()

voidf(intx,inty)

{

intt;

if(x

}

intmain()

{

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

f(a,b);

f(a,c);

f(b,c);

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

return0;

}

A、3,4,5

B、5,3,4

C、5,4,3

D、4,3,5

13、执行如下程序段后,a的值为()

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

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

A、12

B、11

C、10

D、编译出错

14、以下程序执行后的输出结果是()

intmain()

{

intx[8]={8,7,6,5,0,0},*s;

s=x+3;

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

return0;

}

A、随机值

B、0

C、5

D、6

15、若要将text.txt文件打开用于追加信息,则以下格式正确的是()

A、fp=fopen(“text.txt”,”r”);

B、fp=fopen(“text.txt”,”r+”);

C、fp=fopen(“text.txt”,”a+”);

D、fp=fopen(“text.txt”,”w”);

16、有定义语句“doublex,*p;”,则以下表达式中正确的是()

A、*p=&x;

B、p=x;

C、p=&x;

D、*p=x;

17、下面程序的正确输出结果是()。

(规定用U表示空格)

intmain()

{

floatx=5.783,y=-10.2345;

printf(“x=%-8.2f,y=%-8.2f\n”,x,y);

return0;

}

A、x=5.78UUUU,y=-10.23UU

B、x=5.78,y=-10.23

C、5.78,-10.23

D、x=UUUU5.78,y=UU-10.23

18、sizeof(float)是()

A、一个浮点表达式

B、一个不合法的表达式

C、函数调用结果,是一个整型表达式

D、一种函数调用

19、下列数据中属于字符串常量的是()

A、’A’

B、”ABC”

C、ABC

D、’ABC’

20、用下面的scanf函数输入数据,使得i=10,k=15,正确的键盘输入方法是()(用[CR]表示回车,U表示空格)

intmain()

{

inti,k;

scanf(“i=%d,k=%d”,&i,&k);

return0;

}

A、i=10[CR]k=15[CR]

B、i=10,k=15[CR]

C、10U15[CR]

D、10,15[CR]

二、判断题

1、在一个C语言程序中,main函数必须出现在所有函数之前。

()

2、引用数组元素时,下标可以是整型常量或整型表达式。

()

3、预处理命令都必须以“#”开头。

()

4、函数的形参都属于全局变量。

()

5、静态(static)类型变量在函数调用结束后仍然存在。

()

6、函数定义可以嵌套,函数调用不可以嵌套。

()

7、字符类型变量只能存储一个字符。

()

8、从功能上讲,“putchar(c);”等价与“printf(“%c”,c);”。

()

9、表达式(7-1)*2!

=10的值为1。

()

10、实参向形参传递值可以是单向传递,也可以是双向传递。

()

三、填空题

1、若从键盘输入58,则以下程序的输出结果是。

intmain()

{

inta;

scanf(“%d”,&a);

if(a>50)printf(“%d”,a);

if(a>40)printf(“%d”,a);

if(a>30)printf(“%d”,a);

return0;

}

2、以下程序的输出结果是。

intmain()

{

intx=23;

do

{

printf(“%d”,x--);

}while(!

x);

return0;

}

3、将程序补充完整(要求,输入任意两个整数a和b,若b不等于0,则输出a/b的值,结果保留两位小数)。

#include

intmain()

{

inta,b;floatc;

printf(“inputa,b:

”);

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

if()

c=1.0*a/b;

printf(“%.2f\n”,c);

return0;

}

4、将程序补充完整(用for循环求1-100的和)。

#include

intmain()

{

inti,sum;

for(;i<=100;i++)

sum+=i;

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

return0;

}

5、将程序补充完整(输入两个整数并求最大值)。

#include

intmain()

{

inta,b,c;

printf(“inputtwonumbers:

\n”);

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

c=;

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

return0;

}

intmax(intx,inty)

{

intz;

z=x>y?

x:

y;

returnz;

}

四、编程题

1、用数组计算fibonacci数列的前20个数,并按每行打印5个数的格式输出。

2、“百钱百鸡”问题是一个很经典的穷举问题。

公元前5世纪,我国古代数学家张丘建在《算经》中提出,鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。

百钱买百鸡,问鸡翁、母、雏各几何?

编程求解该问题。

测试二

一、单项选择题

1、以下描述中正确的是()

A、C语言程序由过程和函数组成的

B、C语言函数可以嵌套调用,例如:

fun(fun(x))

C、C语言函数不可以单独编译

D、C语言中除了main函数,其他函数不可以作为单独文件形式存在

2、以下C语言用户标识符中,不合法的是()。

A、_1

B、AaBc

C、a_b

D、a——b

3、若有定义“doublea=22;inti=0,k=18;”,则不符合C语言规定的赋值语句是()。

A、a=a++,i++;

B、i=(a+k)<=(i+k);

C、i=a%11;

D、i=!

a;

4、以下选项中,与“if(a==1)a=b;elsea++;”语句功能不同的switch语句是()。

A、switch(a)

{

case:

a=b;break;

default:

a++;

}

B、switch(a==1)

{

case0:

a=b;break;

case1:

a++;

}

C、switch(a)

{

default:

a++;break;

case1:

a=b;

}

D、switch(a==1)

{

case1:

a=b;break;

case0:

a++;

}

5、有以下程序段,为避免此程序段陷入死循环,从键盘输入的数据应该是()。

intn,t=1,s=0;

scanf(“%d”,&n);

do

{

s=s+t;

t=t-2;

}while(t!

=n);

A、任意正奇数

B、任意负偶数

C、任意负奇数

D、任意正偶数

6、以下程序运行后的输出结果是()

#include

intmain()

{

inti,j,m=1;

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

{

for(j=3;j>0;j--)

{

if((i*j)>3)break;

m*=i*j;

}

}

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

return0;

}

A、m=6

B、m=2

C、m=4

D、m=5

7、以下程序运行后的输出结果是()

#include

intmain()

{

inta=1,b=2;

for(;a<=8;a++)

{

b+=a;a+=2;

}

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

return0;

}

A、9,18

B、8,11

C、7,11

D、10,14

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

A、一个自定义函数中必须有一条return语句

B、一个自定义函数中可以根据不同情况设置多条return语句

C、定义成void类型的函数中可以有带返回值的return语句

D、没有return语句的自定义函数在执行结束时不能返回到调用处

9、下列选项中,能正确定义数组的语句是()

A、intnum[0..2008];

B、intnum[];

C、intN=2008;

intnum[N];

D、#defineN2008

intnum[N];

10、若有定义“int(*pt)[3];”,则下列说法正确的是()

A、定义了基类型为int的3个指针变量

B、定义了基类型为int的具有3个元素的指针数组pt

C、定义了一个名为*pt、具有3个元素的整型数组

D、定义了一个名为pt的指针变量,它可以指向每行有3个整型元素的二维数组

11、以下程序运行后的输出结果是()

#include

intmain()

{

inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

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

s=s+a[b[i]];

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

return0;

}

A、6

B、10

C、11

D、15

12、以下程序执行后输出的结果是()

#include

#defineSUB(a)(a)-(a)

intmain()

{

inta=2,b=3,c=5,d;

d=SUB(a+b)*c;

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

return0;

}

A、0

B、-12

C、-20

D、10

13、14、以下程序执行后的输出结果是()

#include

intmain()

{

inta=2,b=2,c=2;

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

return0;

}

A、0

B、1

C、2

D、3

14、设有定义“inta=1,b=2,c=3;”,以下语句中,执行效果与其他3个不同的是()

A、if(a>b)c=a,a=b,b=c;

B、if(a>b){c=a,a=b;b=c;}

C、if(a>b)c=a;a=b;b=c;

D、if(a>b){c=a;a=b;b=c;}

15、以下程序运行后的输出结果是()

#include

intmain()

{

intc=0,k;

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

switch(k)

{default:

c+=k;

case2:

c++;break;

case4:

c+=2;break;

}

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

return0;

}

A、3

B、5

C、7

D、9

16、以下程序的输出结果是()

intmain()

{

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

printf(“%d,%d\n”,*(p+2),*p+9);

return0;

}

A、3,10

B、4,1

C、1,10

D、2,9

17、下面程序的正确输出结果是()。

intmain()

{

charstr[5]=”ABCD”,*p=str;

printf(“%d\n”,*(p+4));

return0;

}

A、68

B、’D’

C、0

D、’0’

18、下面各语句中,能正确进行字符串初始化操作的语句是()

A、chars1[5][]={“ABCDE”};

B、chars2[6]={‘A’,’B’,’C’,’D’,’E’};

C、charst[][]={“ABCDE”};

D、chars[5]={‘A’,’B’,’C’,’D’,’E’};

19、若有说明“inta[3][4]={0};”,则下面正确的叙述是()

A、数组a中每个元素均可得到初值0

B、只有元素a[0][0]可得到初值0

C、数组a中各个元素都可以得到初值,但其值不一定是0

D、此说明语句不正确

20、若有说明“inta[3][4];”,则对数组a中元素的非法引用是()

A、a[1][3]

B、a[0][4]

C、a[0][2*1]

D、a[4-2][0]

二、判断题

1、break是结束本次循环,而continue是结束所有的循环()

2、在C语言中,变量不区分大小写。

()

3、不同的函数中可以使用相同的变量名。

()

4、形式参数是局部变量。

()

5、若用数组名作为函数的实参,传递给形参的是数组第一个元素的值。

()

6、C语言是低级语言。

()

7、在C语言中,每个函数都必须要有一个且只有一个main函数。

()

8、在C语言中,整型常数表示的方法有3种。

()

9、定义一个静态变量时没有必要对它进行初始化。

()

10、假如x和y为double型,则表达式“x=2;y=x+3/2”;的值是3。

()

三、填空题

1、以下程序的运行结果是。

#include

intmain()

{

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

return0;

}

2、以下程序的输出结果是。

#include

voidfun1(intx)

{

x=20;

}

voidfun2(intb[4])

{

intj;

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

{

b[j]=j;

}

}

intmain()

{

intx=23==10;

inta[4]={1,2,3,4},k;

fun1(x);

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

fun2(a);

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

{

pirntf(“%d\n”,a[k]);

}

return0;

}

3、以下程序运行时输入:

123456789,则程序运行结果是。

#include

intmain()

{

intx,y;

scanf(“%2d%*4s%2d”,&x,&y);

printf(“%d”,y-x);

return0;

}

4、以下程序的功能是输入任意整数n后,输出n行由大写字母A开始构成的三角形字符阵列图形。

例如

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

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

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

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