浙大c语言程序习题答案

合集下载

C语言程序设计 浙江科学技术版习题参考答案--习题9

C语言程序设计 浙江科学技术版习题参考答案--习题9

习题参考答案 习题九1. 选择题(1) A D ( 在定义函数时不指定函数类型,若函数体中有返回语句return <表达式>, 则系统默认该函数为int 型;若函数体中无return 语句或return 之后无表达式,则系统默认该函数为void 型)(2) D (函数fun 的参数是按值引用的方式,在fun 中对形参c 赋值,即 c=a+b=2+3=5,但不会影响main 中的实参c 。

在main 中,c 无初值,调用函数fun 之后c 不改变,因此它的值无法确定)(3) A (if(n)相当于if(n!=0), 而f(n)是递归函数,其定义为(1),0()0,0f n n n f n n -+>⎧=⎨=⎩) (4) B (展开宏MA ,并用实参i 和i+1分别代替宏中的形参x,y, 得i=(i*i+1)-7= (5*5+1)-7=19 )2. /*指出下列函数定义中的错误*/(1)double sum( double x, y ) ------double sum(double x, double y)(注: 即使形参的类型相同,也必须各自说明)(2) 函数体内漏了关于变量h 的定义: int h;(注:i. 在函数中,除了定义在函数首部的形参之外,其他需要使用的变量必须遵循“先定义、后引用”的原则 ii. 由于本题中函数f 未指定函数类型,而函数体内有return h 语句,故系统把它默认为int 型,即返回值应该是int 型,所以变量h 作为被返回值,应定义为与函数类型一致的int 型。

--假如题目给定的fun 的类型是double 型,则应定义h 为double 型。

)3. /*填空题*/(1) 2分析: 变量x 是定义在函数f 中的局部变量;变量k 是定义在f 中的静态局部变量。

i= f( f(1) ),两次调用f(2) 5分析: 函数f(x)中出现了递归调用,语句是return ( (x>0)? f(x-1)+f(x-2):1 ); 该函数为1,0()(1)(-20x f x f x f x x ≤⎧=⎨-+>⎩),,即可改写: int f(int x){ int r;if(x<=0) r=1;else r=f(x-1)+f(x-2);return r;}故i=f(3) =f(2)+f(1) =[f(1)+f(0)]+[f(0)+f(-1)] ={[f(0)+f(-1)]+f(0)}+[f(0)+f(-1)] =1+1+1+1+1=5(3) 程序段Aint f(int n){ if(n<=1) return n;else return f(n-1)+f(n-2);}分析:函数f(n)中出现了递归调用,语句是return f(n-1)+f(n-2); 该函数为,1 ()(1)(-21n nf nf n f n n≤⎧=⎨-+>⎩),。

浙江大学C语言程序设计理论考试模拟试题答案

浙江大学C语言程序设计理论考试模拟试题答案

浙江大学C语言理论考试模拟试题答案一、判断题共10题,每题1分,共10分。

正确的请选择A,错误的请选择B。

1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。

AA、正确B、错误解答:A2、在程序中else 子句可以单独使用。

BA、正确B、错误解答:B3、C 语言源程序文件通过了编译、连接之后, 生成一个后缀为.EXE 的文件。

( ) AA、正确B、错误解答:A4、_ya是不合法的C语言标识符。

BA、正确B、错误解答:B5、在数组初始化时,如果初值个数多于数组长度,将出现错误。

AA、正确B、错误解答:A6、C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。

BA、正确B、错误解答:B7、若有定义int *p, 则表达式p++ 的值就是p 所指向的变量的地址值加1。

BA、正确B、错误解答:B8、'\n'不是一个字符常量。

BA、正确B、错误解答:B9、表达式(z=0, (x=2)||(z=1),z) 的值是1。

BA、正确B、错误解答:B10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。

A、正确B、错误二、单选题请从给定的选项中选择一个唯一正确的选项。

每小题2分,共10题,20分。

1、 C下面有关变量的命名,不合法的是:( )A. _intB. __intintC. __int&intD. ___intintintC解答:C2、有变量定义int a;float c;下面输入语句有语法错误的是( )。

A. scanf("%d,%f", &a, &c);B. scanf("x=%d, c=%f", &a, &c);C. scanf("%d%f", &a, &c);D. scanf("%f %d",&a, &c);D解答:D3、下面关于函数参数使用的说法,不正确的是:()A. 函数调用时实参按顺序传递到形参;B. 函数调用时实参把值传递给形参;C. 函数的实参和形参个数可以不一致,但使用时应尽量一致;D. 函数的实参和形参可以同名;C解答:C4、已知int k=1; for(k=1;1;k++) if(k) break; for语句的循环次数是( )。

浙大c期末考试题及答案

浙大c期末考试题及答案

浙大c期末考试题及答案一、选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B2. C语言中,哪个关键字用于声明一个整型变量?A. intB. floatC. doubleD. char答案:A3. 以下哪个选项是C语言中正确的字符串声明?A. char str[] = "Hello, World!";B. string str = "Hello, World!";C. char* str = "Hello, World!";D. string str[] = "Hello, World!";答案:A4. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +C. *D. /答案:C5. 以下哪个选项是C语言中合法的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B6. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. square_root()C. root()D. pow()答案:A7. 以下哪个选项是C语言中正确的函数声明?A. int add(int a, int b);B. int add(a, b);C. int add(int a, b);D. int add(a, int b);答案:A8. 在C语言中,哪个关键字用于创建一个循环,直到满足某个条件?B. whileC. do-whileD. foreach答案:B9. 以下哪个选项是C语言中合法的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. ptr int*;答案:A10. 在C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个宏。

2022年浙大宁波理工学院公共课《C语言》科目期末试卷B(有答案)

2022年浙大宁波理工学院公共课《C语言》科目期末试卷B(有答案)

2022年浙大宁波理工学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

_______2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、结构化程序由________、________ 、________ 3种基本结构组成。

4、C语言中的标识符可分为关键字、_______和_______3类。

5、C语言中的标识符只能由3种字符组成,它们是_______、_______和_______6、请读程序段:int a=1,b=2;if(a&b)printf("***\n");else printf("$$ $\n");以上程序段的输出结果是_______。

7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b){float c;c=a+b;return c;}8、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。

int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);9、字符串"ab\n\\012\\\"”的长度是_______。

10、以下程序段通过移动指针变量m,给如图9-7所示连续动态存储单元赋值。

请填空。

(假设程序段中的所有变量均已正确说明。

)for(k=0;k<10;k++,m++)scanf("%d",_______);二、选择题11、下面4个选项中,是合法浮点数的选项是。

浙江大学C程序设计答案二共30页

浙江大学C程序设计答案二共30页
#include <math.h>
int main(void)
int repeat, ri;
double x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf", &x);
if(x>=0) y=sqrt(x);
else y=pow((x+1),2)+2*x+1/x;
要练说,得练听。听是说的前提,听得准确,才有条件正确模仿,才能不断地掌握高一级水平的语言。我在教学中,注意听说结合,训练幼儿听的能力,课堂上,我特别重视教师的语言,我对幼儿说话,注意声音清楚,高低起伏,抑扬有致,富有吸引力,这样能引起幼儿的注意。当我发现有的幼儿不专心听别人发言时,就随时表扬那些静听的幼儿,或是让他重复别人说过的内容,抓住教育时机,要求他们专心听,用心记。平时我还通过各种趣味活动,培养幼儿边听边记,边听边想,边听边说的能力,如听词对词,听词句说意思,听句子辩正误,听故事讲述故事,听谜语猜谜底,听智力故事,动脑筋,出主意,听儿歌上句,接儿歌下句等,这样幼儿学得生动活泼,轻松愉快,既训练了听的能力,强化了记忆,又发展了思维,为说打下了基础。当x不等于0时,y = f(x) = 1/x,当x等于0时,y = f(x) = 0。
输入输出示例:括号内是说明
输入
2 (repeat=2)
10 (x=10)
0 (x=0)
输出
f(10.00) = 0.1
f(0.00) = 0.0
#include <stdio.h>
int main(void)

浙江大学“程序设计基础-C”试题卷

浙江大学“程序设计基础-C”试题卷

浙江大学“程序设计基础-C”试题卷一.单项选择题(每题2分,共20分)1.C语言程序的三种基本结构是顺序结构、选择结构和______结构。

A.递归B.转移C.循环D.嵌套2.下列运算符中,优先级最高的是_____。

A.->B.++C.&&D.=3.表达式!(x>0&&y>0)等价于_____。

A.!(x>0)||!(y>0)B.!x>0||!y>0C.!x>0&&!y >0D.!(x>0)&&!(y>0)4.表达式sizeof("\nsum=%d\n")的值是______。

A.8B.9C.10D.115.以下选项中不正确的实型常量是_____。

A.0.23EB.2.3e-1C.1E3.2D.2.3e06.表达式______的值不是1。

A.0?0:1B.5%4C.!EOFD.!NULL7.数组定义为inta[11][11],则数组a有_____个数组元素。

A.12B.144C.100D.1218.对于以下的变量定义,表达式______是不正确的。

structnode{intj,k;}x,*p=&x;A.p->k=2B.(*p).k=2C.x.k=2D.x->k=2 9.不正确的赋值或赋初值的方式是______。

A.charstr[]="string";B.charstr[10];str="stri ng";C.char*p="string";D.char*p;p="string";10.设程序中不再定义新的变量,写出在函数main中可以使用的所有变量______。

#include<stdio.h>intz;intp(intx){staticinty;return(x+y);}voidmain(){inta,b;printf("%d\n",p(a));……}A.a,bB.a,b,zC.a,b,y,zD.a,b,x,y,z二、填空题(每题2分,共30分)1.设字符型变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是______。

浙江大学C语言上机练习参考答案汇总

浙江大学C语言上机练习参考答案汇总
夏 4 周...............................................................................................................................................35 10012 函数程序设计........................................................................................................ 35 10024 计算最长的字符串长度........................................................................................ 36 10025 字符串的连接........................................................................................................ 37 40017 求 2/1+3/2+5/3+8/5+.......................................................................................38 80021 找最大的字符串.................................................................................................... 39 80022 找最长字符串........................................................................................................ 40 80023 使用函数删除字符串中的字符............................................................................ 41 80024 使用函数实现字符串复制.................................................................................... 42 80025 判断回文字符串.................................................................................................... 43 80026 分类统计字符个数................................................................................................ 44

浙工大C语言课本习题答案

浙工大C语言课本习题答案

C程序设计习题参考答案习题一 (2)习题二 (3)习题三 (5)习题四 (8)习题五 (14)习题六 (17)习题七 (20)习题八 (26)习题九 (33)习题十 (35)习题十一 (36)习题一1. 填空题⑴计算机程序设计语言按其发展可分为三类,即机器语言、汇编语言和高级语言。

⑵ C程序是由函数构成的,一个C程序中至少包含 1个main函数。

因此,函数是C程序的基本单位。

⑶ C程序注释是由 /* 和 */ 所界定的文字信息组成的。

⑷函数体一般包括函数首行和函数体。

⑸在任何C程序中都必须且只能有一个主函数, 主函数名必须为 main 。

2. 判断下列各个叙述的正确与否⑴ C程序的执行总是从该程序的main函数开始,在main函数最后结束【√】⑵ C程序的注释部分可以出现在程序中任何位置,它对程序的编译和运行不起任何作用,但可以增加程序的可读性【√】⑶由“/*”与“*/”界定的注释必须在同一行【╳】⑷通过了编译、连接的程序就是正确的程序【╳】⑸有计算结果输出的程序一定是正确的程序【╳】⑹编译错误是语法错误,运行结果错误是逻辑错误【√】⑺编译时在信息窗口出现包含“error”的信息,说明程序存在警告性错误【╳】⑻源程序每次修改后,都必须重新编译、连接【√】3. 简答题⑴算法的含义、特点是什么?解答:算法是解题方法的精确描述。

有穷性、确定性、有多或零个输入、有1或多个输出、有效性。

⑵写出一个C程序的基本结构。

由编译预处理命令、注释、1个main和若干个自定义函数构成,函数格式如下:函数类型函数名(类型标识符形参,类型标识符形参,...){ 类型声明语句; 执行语句部分; }⑶写出在你使用的计算机系统上,进入C环境以及运行、调试程序的简要步骤。

⑷输入x后计算其正弦值的源程序如下。

编译信息是否表示有致命性错误?应如何修改?解答:致命性错误为第6行函数sin未声明,应加入编译预处理命令 #include <math.h>4. 编程题⑴请上机调试、运行本章课本上C语言程序例题4~6(注释部分可以不必输)⑵仿照例6编程,输入两个变量后,输出其中较大的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}-----------------------------------------------------------------------------【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:2.程序源代码:#include "math.h"main(){long int i,x,y,z;for (i=1;i<100000;i++){ x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上168后开方后的结果*/if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf("\n%ld\n",i);}}-----------------------------------------------------------------------------【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/{case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf("It is the %dth day.",sum);}-----------------------------------------------------------------------------【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y 的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x 最小。

2.程序源代码:main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/printf("small to big: %d %d %d\n",x,y,z);}-----------------------------------------------------------------------------【程序6】题目:用*号输出字母C的图案。

1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

2.程序源代码:#include "stdio.h"main(){printf("Hello C-world!\n");printf(" ****\n");printf(" *\n");printf(" * \n");printf(" ****\n");}-----------------------------------------------------------------------------【程序7】题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1.程序分析:字符共有256个。

不同字符,图形不一样。

2.程序源代码:#include "stdio.h"main(){char a=176,b=219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",b,a,a,a,b);}-----------------------------------------------------------------------------【程序8】题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:#include "stdio.h"main(){int i,j,result;printf("\n");for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/}printf("\n");/*每一行后换行*/}}-----------------------------------------------------------------------------【程序9】题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:#include "stdio.h"main(){int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(" ");printf("\n");}}-----------------------------------------------------------------------------【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

相关文档
最新文档