C Programming(C语言程序设计)学习通超星期末考试答案章节答案2024年_第1页
C Programming(C语言程序设计)学习通超星期末考试答案章节答案2024年_第2页
C Programming(C语言程序设计)学习通超星期末考试答案章节答案2024年_第3页
C Programming(C语言程序设计)学习通超星期末考试答案章节答案2024年_第4页
C Programming(C语言程序设计)学习通超星期末考试答案章节答案2024年_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CProgramming(C语言程序设计)学习通超星期末考试章节答案2024年/star3/origin/7ea4be46b88ec62b6895bd02187e0427.png

答案:#includeintmain(){

intx;

printf("请输入x:");

scanf("%d",&x);

printf("y的值为:");

if(x<0)

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

elseif(x<50)

printf("%d\n",3*x-2);

elseif(x<100)

printf("%d\n",4*x+1);

else

printf("%d\n",5*x);

return0;}1、已知平面直角坐标系中圆心坐标为x0,y0,半径R,(x0,y0,R的值可以在代码中直接给定,也可以通过键盘输入)。输入一个判定点P的坐标(x,y),判断P与圆的关系。(6分)

答案:#includeintmain(){

floatx0,y0,R;

floatx,y,len;

printf("请输入圆心及其半径:\n");

scanf("%f%f%f",&x0,&y0,&R);

printf("请输入P点的坐标信息:\n");

scanf("%f%f",&x,&y);

len=(x-x0)*(x-x0)+(y-y0)*(y-y0);

if(len>R*R)

printf("点P点的在圆外\n");

elseif(len==R*R)

printf("点P点的在圆上\n");

else

printf("点P点的在圆内\n");

return0;}【个人所得税计算】2019年1月1日起,国家推出新的个人所得税政策,起征点上调值5000元。也就是说税前工资扣除三险一金(三险一金数额假设是税前工资的10%)后如果不足5000元,则不交税。如果大于5000元,那么大于5000元的部分按梯度交税,具体梯度比例如下:0~3000元的部分,交税3%3000~12000元的部分,交税10%12000~25000的部分,交税20%25000~35000的部分,交税25%35000~55000的部分,交税30%55000~80000的部分,交税35%超过80000的部分,交税45%比如:物联网工程专业一名应届生入职一家企业后,税前工资是15000,则他每月该交个税的部分是15000-1500-5000=8500元,个税缴纳数额是3000×3%+5500×10%=640元。税后工资12860元。请完成一个个税计算程序,在用户输入税前工资后,计算出他对应的纳税数额,以及税后工资为多少?要求:1、编写的.c文件名以自己真实姓名来命名

答案:#includevoidmain(){intsalary_b;floatsalary_t,taxation,salary_a;//salary_b:税前工资,salary_t:参与交税部分的工资,taxation:缴纳的税收,salary_a:税后工资scanf("%d",&salary_b);

salary_t=salary_b*0.9-5000;if(salary_t<0){

taxation=0;}elseif(salary_t<=3000)

//0~3000元的部分,交税3%{

taxation=salary_t*0.03;}elseif(salary_t<=12000)

//3000~12000元的部分,交税10%{taxation=3000*0.03+(salary_t-3000)*0.1;}elseif(salary_t<=25000)

//12000~25000的部分,交税20%{taxation=3000*0.03+9000*0.1+(salary_t-12000)*0.2;}elseif(salary_t<=35000)

//25000~35000的部分,交税25%{taxation=3000*0.03+9000*0.1+13000*0.2+(salary_t-25000)*0.25;}elseif(salary_t<=55000)

//35000~55000的部分,交税30%

{taxation=3000*0.03+9000*0.1+13000*0.2+10000*0.25+(salary_t-35000)*0.3;}elseif(salary_t<=80000)

//55000~80000的部分,交税35%{taxation=3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+(salary_t-55000)*0.35;}else

//超过80000的部分,交税45%{taxation=3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+25000*0.35+(salary_t-80000)*0.45;}salary_a=salary_b*0.9-taxation;printf("该员工对应的纳税数额为:%.1f,税后工资为:%.1f",taxation,salary_a);}题目内容:编写嵌套的循环程序,输出1-100这个范围内的素数。要求:1)本周日19:00前将源程序作为附件上传,源程序名:学号.c2)将程序以及相应的运行结果截图上传

答案:#include#includeintmain(){

inti,j,k=0,count=0;intisPrime;

printf("1至100之间的素数从小到大分别为:\n");

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

isPrime=1;for(j=2;j<=sqrt(i);j++){

if(i%j==0)

{

isPrime=0;

break;

}}if(isPrime==1){

printf("%d\t",i);count++;}}

printf("一共%d个素数\n",count);

return0;}要求编程求出一句话中到底有多少单词。首先在屏幕上输入一句话,每个单词之间用一个空格隔开,要求第一个字符和最后一个字符都不能为空格;然后统计出这句话的单词数量,并把结果输出到屏幕上。

答案:#includeintmain(){

charstr[50];

//定义保存字符串的数组

inti,count=1;

//count表示单词的个数

charblank;

//表示空格

printf("Pleaseinputasentence:\n");

gets(str);

//输入字符串

if(str[0]=='\0')

//判断如果字符串为空的情况

printf("Nowords!\n");

else

{

for(i=0;str[i]!='\0';i++)//循环判断每一个字符

{

blank=str[i];

//得到数组中的字符元素

if(blank=='')

//判断是不是空格

count++;

//如果是则加1

}

printf("Thereare%dwordsinthissentence.\n",count);

}

return0;

}编写一个程序,将两个字符串连接起来。不能使用strcat函数。

答案:#includeintmain(){chars1[100],s2[30];int

i,j;printf("Pleaseinputs1:");gets(s1);printf("Pleaseinputs2:");gets(s2);for(i=0;s1[i]!='\0';i++);for(j=0;s2[j]!='\0';j++,i++)s1[i]=s2[j];s1[i]='\0';printf("Output\ns1:");puts(s1);return0;}【选择排序】从键盘输入6个数,保存到数组中,要求使用选择排序法对它们按由小到大的顺序排列,排列好之后将其依次打印出来要求:1、验证输入的6个数据分别为6543212、源程序命名为你的真实姓名.c,上传源程序及运行结果截图

答案:#definen6

voidmain(){

inta[n],i,j,k,t;

for(i=0;i/star3/origin/f40313cf238d3a7024447bb71c7818aa.png

答案:#includeintmain(){

doublefun(doublex,inty);

inty=3;

doublex=4,z;

z=fun(3,4);

printf("z=%f\n",z);

return0;}doublefun(doublex,inty){

inti;

doublez=1;

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

z=z*x;

return

z;}(编程题)编写一递归函数,计算下面的级数。

f(i)=

1/3+2/5+3/7+4/9+⋯+i/(2i+1),并且在main函数中验证该递归函数的功能。要求验证i=10要求:1)源程序名:学号.c2)将程序以及相应的运行结果截图上传

答案:#includedoublef(inti);voidmain(){inti;printf("Pleaseinputthevalueofi:");scanf("%d",&i);printf("\n");printf("Thevalueoffunctionf:%lf\n",f(i));}doublef(inti){if(i==1)return(1.0/3);elsereturnf(i-1)+(double)i/((2*i)+1);}设计一个函数

voidinv(intx[],intn),

将main函数中的数组a中n个整数按相反顺序存放。要求:1、a在逆置前后分别按行输出一次2、实现inv函数的时候,循环变量就用数组名x或者指针变量

答案:#includeintmain(){voidinv(intx[],intn);//inv函数声明inti,a[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");inv(a,10);//调用inv函数,进行交换printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidinv(intx[],intn)//形参x是数组名{inttemp,i,j,m=(n-1)/2;

int*p=x+n-1;

for(x;p-x>=0;x++,p--){temp=*x;*x=*p;*p=temp;}return;}下面程序的运行结果是_______。#includeintmain(){intx=3,y=5;

printf("%d\n",x/y);

return0;}

答案:0若有以下类型说明语句:char

w

;

int

x

;

float

y

;

double

z

;

,则表达式w

*

x

+

z

-

y的结果为_______类型。

答案:double下面不正确的字符串常量是_______。

答案:'abc'以下选项中合法的实型常数是_______

答案:2E0以下选项中可以作为C语言中合法整数的是_______

答案:0Xffa以下代码,有语法问题的是?

答案:int

a=3;b=4;以下程序没有语法问题的是()

答案:includeintmain(){intx=3,y=5;

printf("%d\n",x/y);

return0;}下列正确的标识符是:

答案:a2_i在C语言中(以32位PC机为例),一个char型数据在内存中所占的字节数为_______,一个int型数据在内存中所占的字节数为_______,一个float型数据在内存中所占的字节数为_______,一个double型数据在内存中所占的字节数为_______。

答案:1;1个;4;4个;4;4个;8;8个下面程序的运行结果是_______。#includeint

main(

){int

i

,

j

;

i

=

8

;

j=10;

printf(

"%d,%d,%d,%d\n"

,

i

,

j

,

++i

,

j++

)

;

return

0

;}

答案:9,10,9,10a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_______,b值为_______,c值为_______。

答案:6;4;2x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为_______

答案:0(自增、自减)下面程序的运行结果是_______。#includeint

main(

){int

x

=

10

,

y

=

3

;

printf(

"%d\n%d\n"

,

x++

,

--y

)

;

return

0

;}

答案:10;2(自增+逗号)设所有变量均为整型,则表达式(

a

=

2

,

b

=

5

,

a++

,

b++

,

a

+

b

)的值为_______。

答案:9若定义:int

a

=

2,b

=

3;float

x

=

3.5,y

=

2.5;则表达式(

float

)(a

+

b

)

/

2

+

(

int

)

x

%

(

int

)

y的值是_______。

答案:3.500000;3.5有以下定义int

m

=

5,y

=

2;则计算表达式y

+=

y

-=

m

*=

y后的y值是_______。

答案:-16若x,i,j和k都是int型变量,则计算表达式x

=

(

i

=

4

,

j

=

16

,

k

=

32

)后,x的值为_______。

答案:32若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为_______。

答案:32(赋值)下列赋值表达式错误的是?

答案:2x=1.2

//

x为浮点型变量若有定义:int

a

=

7

;

float

x

=

2.5

,

y

=

4.7

;

,则表达式x

+

a

%

3

*

(

int

)(

x

+

y

)

%

2

/

4的值是_______。

答案:2.500000有以下程序#includemain(){

char

ch;

ch=getchar();

ch=ch+32;

putchar(ch);

putchar('\n');}假设输入ch值为A,输出ch值为

答案:a/star3/origin/5dce339de6567c12e72be2982f66aa29.png

答案:24820.020.0/star3/origin/2312915cb701437ef45fab7df6cd472c.png

答案:20已知floatf=123.463;,则执行语句printf("%.2f\n",f);,输出结果是_______。

答案:123.46下面程序的运行结果是_______。#includeintmain(){inta=201,b=012;printf("%2d,%2d\n",a,b);return0;}

答案:201,10已知float

f

=

123.467

;

,则执行语句printf(

"%.2f\n"

,

f

)

;

,输出结果是_______。

答案:123.47下面程序的运行结果是_______。#includeintmain(){charm;

m='B'+32;

printf("%c\n",m);

return0;}

答案:b有以下程序#includeintmain(

){charc1='1'

,c2='2'

;c1

=

getchar(

)

;

c2

=

getchar(

)

;putchar(

c1

)

;

putchar(

c2

)

;}当运行时输入a↙后,以下叙述正确的是_______。

答案:变量c1被赋予字符a,c2被赋予回车符根据以下定义语句和数据的输入方式,scanf语句的正确形式应为_______。已有定义:floatf1,f2;数据的输入方式:4.52↙

3.5↙

答案:scanf("%f%f",&f1,&f2);若有inta;floatb;scanf("%d,%f",&a,&b);使a、b的值分别为30和5.5,则正确的输入是_______。

答案:30,5.5已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_______。

答案:scanf("%d,%d,%d",&i,&j,&k);已知a、b、c为int类型,执行语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若要使得a为1,b为2,c为3。则以下选项中正确的输入形式是_______。

答案:a=1,b=2,c=3已知chara='\103';则语句printf("%3d",a);执行后的输出结果为_______。

答案:£67

(£表示空格)若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是_______。

答案:0设有定义:longx=123456L;,则以下能够正确输出变量x值的语句是_______。

答案:printf("x=%ld\n",x);下面程序的运行结果是_______。#includeint

main(

){int

x

=

1

,

y

=

1

,

a

=

0

,

b

=

0

;

switch(

x

)

{case

1:

switch(

y

)

{case

0:

a++

;

case

1:

b++

;

case

2:

b++

;

break

;

}

case

2:

a++

;

b++

;

break

;

case

3:

a++

;

b++

;}printf(

"a=%d,b=%d\n"

,

a

,

b

)

;return

0

;}

答案:a=1,b=3(程序运行题)下面程序的运行结果是_______。运行时从键盘输入:1↙。#include

stdio.h>int

main(

){int

k

;

scanf(

"%d"

,

&k

)

;

switch(

k

)

{

case

1:

printf(

"%d,%d\n"

,

k++

,

k

)

;

case

2:

printf(

"%d,%d\n"

,

k

,

k--

)

;

case

3:

printf(

"%d,%d\n"

,

++k

,

k

)

;

case

4:

printf(

"%d,%d\n"

,

-k

,

k++

)

;

break

;

default:

printf(

"full!\n"

)

;

}return

0

;}

答案:1,12,22,1-2,2下面程序的运行结果是_______。#includeint

main(

){int

x

=

1

,

a

=

0

,

b

=

0

;switch(

x

){case

0

:

b++

;case

1

:

a++

;case

2

:

a++

;

b++

;}printf(

"%d,%d"

,

a

,

b

)

;return

0

;}

答案:2,1(程序完善题)下面程序用于将输入的三个数从小到大排序输出。#includeintmain(){

inta,b,c,x,y;

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

if(_______)

{x=a;y=b;}

else

{x=b;y=a;}

if(_______)

x=c;

else

if(y>c)

y=c;

printf("%d,%d,%d",y,a+b+c–x–y,x);return0;}

答案:a>b;b=b;b<=a;xx;x<=c;c>=x(程序运行题)下面程序的运行结果是_______。#includeint

main(

){char

c1

=

97

;

if(c1

>=

'a'

&&

c1

<=

'z'

)

printf(

"%d,%c"

,

c1

,

c1

+

1

)

;

elseprintf(

"%c"

,

c1

)

;return

0

;}

答案:97,b(程序运行题)下面程序的运行结果是_______。#includeintmain(){intx=10,y=20,t=0;if(x==y)

t=x;x=y;y=t;printf("%d,%d\n",x,y);return0;}

答案:20,0(程序运行题)下面程序的运行结果是_______。#includeintmain(){intm=5;

if(m++>5)

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

else

printf("%d\n",m--);

return0;}

答案:6下面程序的运行结果是_______。运行时从键盘输入:88↙。#includeintmain(){inta;scanf("%d",&a);if(a>90)printf("%d",a);if(a>80)printf("%d",a);if(a>70)printf("%d",a);return0;}

答案:8888(程序运行题)下面程序的运行结果是_______。#includeintmain(){inta=1,b=2,c=3;

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

return0;}

答案:3,3,0,0若a,b,c均为整型变量,则执行以下语句a=b=c=0;a++&&++b||c++;后,a的值为_______,b的值为_______,c的值为_______。

答案:1;0;1若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。

答案:(x-y<0||x-y>0)以下说法错误的是__________。

答案:case后面的常量表达式的值可以是整型也可以是浮点型的若有定义:floatw;inta,b;则合法的switch语句是?

答案:switch(b)

{

case1:printf("*\n");

default:printf("\n");

case1+2:printf("**\n");

}(单选题)if语句的选择条件是_______。

答案:可以用任何表达式(单选题)为了避免嵌套的if-else的二义性,C语言规定,else与_______配对。

答案:其之前最近的不带else的if当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为_______。if(a答案:2已知intx=2,y=-1,z=3;,执行下面语句后,z的值是_______。if(x答案:3若inta=3,b=2,c=1,f;表达式f=a>b>c的值是_______。

答案:0变量c为char类型,能正确判断出c为小写字母的表达式是_______

答案:(c>='a')&&(c<='z')设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为_______。

答案:2已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z–1&&y+z/2的值是_______。

答案:1(程序运行题)下面程序的运行结果是_______。#includeintmain(){

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

答案:x=8(程序运行题)下面程序的运行结果是_______。#includeint

main(

){

int

m

=

0

,

k

=

0

,

i

,

j

for(

i

=

0

i

<

2

;i++

)

{

for(

j

=

0

;

j

<

3

;

j++

)

k++

k

=

k

-

j

}

m

=

i

+

j

printf(

"k=%d,m=%d\n"

,

k

,

m

)

;

return

0

;}

答案:k=0,m=5下面程序的运行结果是_______。#includeintmain(){

inta=1,b;

for(b=1;b<=10;b++)

{

if(a>=8)

break;

if(a%2==1)

{

a+=5;

continue;

}

a=a-3;

}

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

return0;}

答案:4(程序运行题)下面程序的运行结果是_______。#includeintmain(){

charc1,c2;

inta;

c1='1';

c2='A';

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

{

if(a%2)

putchar(c1+a);

else

putchar(c2+a);

}

return0;}

答案:A2C4E6do-while语句构成的循环不能用其它语句构成的循环来代替

答案:错关于break和continue,以下说法正确的是_______。

答案:continue语句只应用在循环体中(单选题)for循环语句:for(表达式1;表达式2;表达式3)语句,以下叙述正确的是_______。

答案:for语句中的循环体可以是一个复合语句有以下程序#includeintmain(){

inti;

for(i=1;

;i++);

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

return0;}则下面描述中正确的是_______。

答案:死循环(单选题)若i为整型变量,则以下循环执行次数是_______。

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

答案:0次下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。#includeintmain(){

inta,max=0;

scanf("%d",&a);

while(_______)

{

if(max答案:a下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#includeintmain(){

inta,b,t;

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

while(_______)

{

if(a>b)

{

t=a;

a=b;

b=t;

}

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

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

}

return0;}

答案:a!=b有以下程序段intx=0,s=0;while(!x!=0)

s+=++x;printf("%d",s);则_______。

答案:B.运行程序段输出1C语言中while和do-while循环的主要区别是_______。

答案:do-while的循环体至少无条件执行一次有以下程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是_______。

答案:循环体语句一次也不执行下面程序的功能是:从键盘上输入10个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩。请填空。

#includeintmain()

{intscore[10]

,n

=

0

,

i;floatsum=0.0,avg

;printf("pleasrenter:\n");for(i=0;i<

10;

i++){scanf(

"%d"

,&score[i]);_______;}avg

=

sum

/

10;for(i=0;i<

10;

i++)if(_______)printf(

"%3d"

,

score[i]

)

;

return0;}

答案:sum+=score[i];sum=sum+score[i];score[i]下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。

#includeintmain(){inta[5]

,max

,min

,i

,j=0,k=0;for(i=0;i<5;i++)scanf("%d",&a[i]);min=a[0];for(i=1;i<5;i++)if(a[i]max){max=a[i];_______;}_______;_______;printf("\nThepositionofminis:%3d\n",k);printf("\nThepositionofmaxis:%3d\n",j);for(i=0;i<5;i++)printf("%5d",a[i]);

return0;}

答案:k=i;j=i;a[k]=max;a[j]=max若有定义:inta[10];,则对a数组的第1个元素的正确引用是_______

答案:a[0]若有定义:inta[10];,则对a数组元素的正确引用是_______。

答案:a[10-10]以下对一维整型数组a的定义,正确的是_______

答案:inta[0==0];在C语言中,定义数组元素时,其数组下标的数据类型不允许是

答案:整型变量下面程序的运行结果是_______。#includeintmain(){

inti;

chara[]="Time",b[]="Tom";

for(i=0;a[i]!='\0'&&b[i]!='\0';i++)

if(a[i]==b[i])

if(a[i]>='a'&&a[i]<='z')

printf("%c",a[i]-32);

elseprintf("%c",a[i]+32);

elseprintf("*");

return0;}

答案:t*M下面程序的功能是:将数组a[3][4]中的元素以3行4列的格式输出,然后按行求和并且存储到数组s中。请填空。#includeintmain(){inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};ints[3]={0};inti,j;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%4d",a[i][j]);_______;}_______;}for(i=0;i<3;i++)printf("%d\n",s[i]);

return0;}

答案:s[i]=s[i]+a[i][j];printf("\n"下面程序的运行结果是_______。

#includeintmain(){inta[3][3]={0,1,2,3,4,5,6,7,8};inti,s=0;for(i=0;i<3;i++)s+=a[i][1];printf("%d\n",s);

return0;}

答案:12判断字符串s1是否大于字符串s2,应当使用_______。

答案:if(strcmp(s1,s2)>0)(单选题)有两个字符数组a,b,则以下正确的输入语句是_______。

答案:scanf("%s,%s",a,b);对两个数组a和b进行如下初始化,chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是_______。

答案:a的长度比b长(单选题)以下对数组s的初始化,错误的是_______。

答案:chars[5]="abcde";下面程序段的运行结果是_______。#includeintmain()

{

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

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

printf("%2d",x[i][2-i]);

return0;}

答案:357若有定义:inta[3][4];,则对a数组元素的正确引用是_______。

答案:a[1+1][0]以下对二维数组a的正确说明是______

答案:doublea[][4];下面程序的运行结果是________。#includeintmain(){

voidincrement();

increment();

increment();

increment();

return0;}voidincrement(){

intx=0;

x+=1;

printf("%d",x);}

答案:111下面程序的运行结果是________。#includeintmain(){

intf1(intx,inty);

inta=11,b=12,c;

c=f1(a,b);

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

return0;}intf1(intx,inty){

intf2(int,int);

intc;

x=x*2;

y=y*2;

c=f2(x,y);

returnc*2;}intf2(inta,intb){

intc;

c=(a+b)%3;

returnc;}

答案:a=11,b=12,c=2下面程序的运行结果是________。#includeintmain(){

voidf(intx,inty);

inta=1,b=2;

f(a,b);

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

return0;}voidf(intx,inty){

x=100;

y=200;}

答案:a=1,b=2以下函数原型声明语句正确的是________。

答案:voidf(int

);关于函数调用的形式,以下错误的描述是________。

答案:可以作为一个函数的形参C语言规定,函数返回值的类型是由________。

答案:在定义该函数所指定的函数类型所决定以下关于形参和实参的说明中,错误的是_______。

答案:实参对形参的数据传送是双向的,可以把实参的值传给形参,也可以把形参的值反向传给实参以下说法不正确的是_______。

答案:形参可以是常量、变量或表达式如果一个函数没有返回值,那么该函数的类型是_______。

答案:void以下正确的函数形式是_______。

答案:doublefun(intx,inty){doublez;z=x+y;returnz;}以下正确的说法是_______。

答案:用户可以重新定义标准库函数,若如此,该函数将失去原有含义。3.编写函数input允许程序从键盘输入若干个整数,函数count统计前10个数中非负数的个数,主函数中调用这两个函数完成基本的测试功能。(8分)

答案:#include"stdio.h"#defineN30

voidinput(inta[],intn){

1分

inti;

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

}

returnc;

1分}main(){

inta[N],n;

此处如果直接定义数组长度为变量,扣0.5分

do{

2分,没有写循环控制n的大小扣1分

printf(“请输入整数个数”);

scanf(“%d”,&n);}while(n>N||n<0);

input(a,n);

1分

printf("非负数有%d个",count(a,10));

}模仿ATM取款机界面进行操作,设初始账号为1100,账号余额为200块。(7分)

1:查询

2:取款

3:退出。

请输入您的操作:完善程序中省略号的部分。

#include"stdio.h"main(){

characcount[10]="1100";

//账号

doublebalance=200,d;

//balance为账户余额,d表示每次取款的数目,需要从键盘输入

intch;

do{printf("1.查询;\n2.取款\n3.退出\n请输入您的选择:");

……}while(ch!=3);}

答案:2.#include"stdio.h"main(){

characcount[10]="1100";

doublebalance=200,d;

intch;

do{

printf("1.查询;\n2.取款\n3.退出\n请输入您的选择:");

scanf("%d",&ch);

1分

switch(ch){

case1:printf("%lf\n",balance);break;

1分

case2:printf("请输入取款金额:");

1分

scanf("%lf",&d);

if(d>balance)

printf("余额不足");

2分

elsebalance-=d;

break;

case3:break;

1分

default:printf("您的输入有误");

1分

}

}while(ch!=3);}编程输出斐波那契数列的前20个数,格式如下:(6分)1

1

2

35

8

13

2134

55

89

144233

377

610

9871597

2584

4181

6765

答案:#include"stdio.h"

1分main(){

inta[20]={1,1},i;

1分

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

a[i+2]=a[i+1]+a[i];

2分

for(i=0;i<20;i++){

printf("%d\t",a[i]);

1分

if((i+1)%4==0)printf("\n");

1分

}}/star3/origin/ab4ed17203755f4da6995b099da456e1.png

答案:i=0;gets(str;str[i]!='\0';break;printf("不存在该字符\n";c!='0'/star3/origin/918b7a8dc9fcff44393dfb1c1329ecdd.png

答案:count=5average=5.000000/star3/origin/6a9b8b63b36630701dff78520791162a.png

答案:k=7/star3/origin/4bd8367df9e2c068ac1f951b98beca6a.png

答案:a=2,b=-1,c=28.一个C语言程序有且仅有一个

,有

个输出。

答案:main函数;主函数;一个或多;若干7.语句intx=5;if(x=10)x+=2;则x=

答案:126.语句intx=5,y=6,z=x>y?++x:y++;则x=

1

y=

2

z=

3

答案:5;7;6/star3/origin/4fa79e0a52e98caa017c60af46f1e49d.png

答案:sqrt(3*x*x/5/(x+1下列数组定义charstr[]=”abc\0abc”,数组str的长度是

1

,strlen(str)求出的字符串长度为

2

答案:8;33.C语言函数调用是参数传递采用的是

1

传递、

2

传递。

答案:值;地址C语言的三种基本控制结构分别是顺序、

1

2

答案:选择;循环下列函数声明,正确的是()。

答案:voidf(intx,inty);下面说明不正确的是()。

答案:chara[10],*p;p=a=”china”;合法的数组初始化语句是()。

答案:chara[]={0,1,2,3,4,5};以下对二维数组a的正确声明是()

答案:doublea[1][4];在inta[5]={1,3,5};中,数组元素a[1]的值是()

答案:3如有定义inta[20],下面正确地应用数组元

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论