《高级语言程序设计》答案
高级语言程序设计(C语言)习题答案及详解

1.1 单项选择题1.二进制语言是属于()①面向机器语言②面向问题语言③面向过程语言④面向汇编语言「解」人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
面向过程语言是一种能方便描述算法过程的计算机程序设计语言。
有汇编语言,但没有面向汇编语言。
汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。
所以解答是①。
2.下列语言中不属于面向过程的语言是()①高级语言②低级语言③C语言④PASCAL语言「解」C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。
低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。
所以解答是②。
3.下列字符中属于键盘符号的是()①\ ②\n ③\t ④\b「解」键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如'\n'、'\t' 、'\b'都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符\才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符\已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成‘\\’。
4.下列字符列中,不是用来表达转义字符是()①\\ ②\' ③074 ④\0「解」转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。
后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。
高级语言程序设计00342历年真题答案

全国2001年10月自考高级语言程序设计(一)答案课程代码:00342一、单项选择题(本大题共20小题,每小题1分,共20分)1.D2.C3.A4.B5.C6.B7.A8.D9.B 10.D11.D 12.B 13.A 14.C 15.D16.D 17.C 18.A 19.A 20.B二、填空题(本大题共10小题,每小题2分,共20分)21.double a=0.61822.123.x>20&&x<=30或者(x>20)&&(x<=30)24.225.026.静态存储,或者static27.p->no=1234;或者(*p).no=1234;28.字节29.1630。
a[1][0]三、程序分析题(本大题共5小题,每小题5分,共25分)31.201,21202,22203,23204,24205,2532.Q(若结果为Qhaw,只得3分)33.7 6 5 4 3 2 134.Li ning:19Lang ping:21Zhu jian hua:2035.2,65,A四、程序填充题(本大题共3小题,每小题6分,共18分)36.(1)j=i+1(2)>(3)b[i]=b[j]37.(1)digit=0,blank=0,other=0(2)c>='0'&&c<='9'(3)++other或者other++38.(1)&a[i]或者a+i(2)x==a[i](3)<五、程序设计题(第39小题5分,第40、41小题各6分,共17分)39.main(){ int i;for(i=10;i<=1000;i++)if((i%2==0)&&(i%3==0)&&(i%7==0))printf("i=%d\n",i);}40.main(){ int a=0,b=0,i;for(i=2;i<=100;i+=2){a+=i;b+=i-1;}printf("Sum of even number=%d\n",a);printf("Sum of odd number=%d\n",b);}41.# include "string.h"main (){ int i,n;static char str[80];gets(str);n=strlen(str);for(i=0;i<n/2;i++)if(str[i]!=str[n-1-i]){ printf("No!\n");break;}if(i==n/2)printf("Yes!\n");}浙江省2002年1月高等教育自学考试高级语言程序设计(一)试题参考答案课程代码:00342一、单项选择题(每小题1分,共15分)1.B2.C3.C4.C5.C6.A7.B8.A9.B 10.B11.D 12.C 13.D 14.D 15.C二、填空题(每空1分,共15分)1. 42. a<b? a:b3. pow(x+y,1.0/3)4. a-b==b-c5. a*b!=0 或a*b6. 11,67. 27\n8. 69. 1010. 4911. windows 9x12. 9x13. string.h14. a[k].b 或(a+k)->b15. a、b为同类型的结构体变量三、程序阅读题(每行2分,共24分)1.1 B2.13. 2.52 C 2 1 7.53 D 3 2 1 7.54 E 4 3 2 1 7.5四、根据下列各编程题题意填空(每空2分,共24分)1.(1)″%d%d″,&m,&n(2)gbs%n!=0(3)m*n/gbs(4)printf(″%d %d\n″,gbs,gys);2.(1)int sum(int m)(2)i=2(3)m%i==0(4)return s3.(1)return h(2)p1->next!=NULL(3)n==p1->num(4)p2->next=p1->next五、编程题(第1小题6分,其他小题各8分,共22分)1.#include <stdio.h>void main(){ int i,n;float x,s1=0;s2=0;scanf(″%d″,&n);for(i=1;i<=n;i++) {scanf(″%f″,&x);if(x>0) s1++;if(x<0) s2++;}printf(″%f %f\n″,s1,s2,);}2.#include <stdio.h>void main(){ float a[15],y; int i;for(i=0;i<15;i++) scanf(″%f″,a+i);y=a[14];for(i=13;i>=0;i--) y=1+a[i]/(1+y);printf(″%f\n″,y);}3.#include <stdio.h>void main(){ char ch;FILE *fp1,*fp2;fp1=fopen(″x1.dat″,″r″);fp2=fopen(″x2.dat″,″w″);while(!feof(fp1)) {ch=fgetc(fp1);if(ch!=' ') fputc(ch,fp2);}fclose(fp1);fclose(fp2);}高级语言程序设计(一)答案2003年10月2005年10月自考高级语言程序设计(一)试卷参考答案一、l.D 2.A 3.C 4.D 5.B 6.A 7.A 8.C 9.A l0.C ll.C l2.B l3.D l4.D l5.C l6.B 17.D l8.A l9.B 20.A二、21.return或返回语句22.323.auto型或自动型24.break25.一326.1027.10028.本文件29.430.值三、31.103 10232.2 5 9 1433.LiHUfl:18WangXin:25LiuGu0:2134.10 2525 2535.552337.第一空:&n第二空;i>=0&&i<=9第三空:i40.(1)long fac(int n)2010年10月自考高级语言程序设计(一)参考答案2011年10月全国自考高级语言程序设计(一)参考答案。
高级语言程序设计试卷及答案解析

单项选择题1.二进制语言是属于()①面向机器语言②面向问题语言③面向过程语言④面向汇编语言【解】人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
面向过程语言是一种能方便描述算法过程的计算机程序设计语言。
有汇编语言,但没有面向汇编语言。
汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。
所以解答是①。
2.下列语言中不属于面向过程的语言是()①高级语言②低级语言③C语言④PASCAL语言【解】C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。
低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。
所以解答是②。
3.下列字符中属于键盘符号的是()①②n ③t ④b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如"n"、"t" 、"b"都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成""。
4.下列字符列中,不是用来表达转义字符是()①②" ③074 ④【解】转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。
后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。
《高级语言程序设计》期末考试试卷附答案

《高级语言程序设计》期末考试试卷附答案一、选择题(共20题,每题3分,共60分)1. 下列四个选项中,均是合法的整型常量的选项是()A.160 –0XFFFF 011 B. -0XCDF 01A 0XE C. -01 986,012 0688 D. -0X48a 2e5 0x2. 下列四个选项中,均是不合法的浮点数的选项是()A.160.0.12 e3 B. 123 2e4.2 .e5C.18 0.0 123e4 D. e3. 234 1e33. 合法的C语言字符常数是()A.'\t' B. "A"C.54 D. A4. 在C语言中,要求运算数一定是整型的运算符是()A./ B. ++C.!= D. %5. 字符串常量”mine”的字符个数是()A.4 B. 5C.6 D. 76. 以下属于非法的C语言转义字符的是()A.'\b' B. '0xf'C.'\037' D. '\'7. 若x、y、z均为int型变量,则执行以下语句后的输出是()x=(y=(z=10)+5)-5;printf("x=%d, y=%d, z=%d\n",x,y,z);y=(z=x=0,x+10);printf("x=%d, y=%d, z=%d\n",x,y,z);A. x=10, y=15, z=10B.x=10, y=10, z=10x=0, y=10, z=0x=0, y=10, z=0C.x=10, y=15, z=10D. x=10, y=10, z=10x=10, y=10, z=0 x=10, y=10, z=08. 在以下一组运算符中,优先级最高的运算符是()A.<= B. =C.% D. &&9. 已知:int x; float y; 所用的scanf调用语句格式为:scanf( “x=%d, y=%f”, &x, &y );为了将数据10和66.6分别赋给x和y,正确的输入应当是()A.x=10, y=66.6<回车> B. 10, 66.6<回车>C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车>10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()(注:□表示空格,<CR>表示回车)int a1, a2,;char c1, c2;scanf( “%d%c%d%c”, &a1, &c1, &a2, &c2 );A.10□A□20B<CR> B. 10□A□20□B<CR>C.10A20B<CR> D.10A20□B<CR>11. 能正确表达:“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()A.(x>=1) && (x<=10) && (x>=200) && (x<=210)B. (x>=1) || (x<=10) || (x>=200) || (x<=210)C.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)D. (x>=1) || (x<=10)&&(x>=200) || (x<=210)12. 假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0; x=35;if(!a) x--;else if (b);if(c) x=3;else x=4;A.34 B. 4C.35 D. 313. 若变量c为char类型,能正确判断出c为大写字母的表达式是()A.'A'<=c<= 'Z' B. (c>= 'A')||(c<= 'Z')C.('A'<=c)and ('Z'>=c) D. (c>= 'A')&&(c<= 'Z')14. 若给定条件表达式:(!n) ? (c++) : (c--),则与表达式n等价的表达式是()A.n==0 B. n==1C.n!=0 D. n!=115. 已知:int a=4, b=5, c; 则执行表达式c=a=a>b后变量a的值为()A.0 B. 1C.4 D. 516. 定义int i=1; 执行语句while(i++<5); 后,i的值是()A.3 B. 4C.5 D. 617. 合法的数组说明是()A.int a[] = “string”; B.int a[] = { 0, 1, 2, 3, 4, 5 }; C.char a = “string”; D.char a[] = { 0, 1, 2, 3, 4, 5 };18. 当调用函数时,实参是一个数组名,则向函数传送的是()A.数组的长度 B. 数组的首地址C.数组每一个元素的地址 D. 数组每个元素中的值19. 函数调用:strcat(strcpy(str1,str2),str3)的功能是()A.将串str1复制到串str2中后再连接到串str3之后B. 将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D. 将串str2连接到串str1之后再将串str1复制到串str3中20. 已知:int a[]={1,2,3,4,5,6,7,8,9,10.11.12}, *p=a; 则(*p) 的值是()A.1 B. 2C.3 D. a二、判断题:(共10题,每题2分,共20分)()1.C语言中能使用关键字作为标识符。
高级语言程序设计习题及答案

习题一1-1 Pascal语言的程序结构由哪几部分组成?试述各部分的构成形式和作用。
1-2 Pascal基本字符集有哪些成分构成?Pascal的保留字是什么?1-3 Pascal语言中标识符是怎样构成的?下列字符串哪些是正确的Pascal标识符?哪些是错误的?为什么?A5B,5H4,PEL,1,A31,x﹡y,AB,A + B,$500,G1(x),xyz,E-10,VAR1-4 下列数据哪些是整数?哪些是实数?哪些是非法的(假设计算机字长为32位)?256 2.54 25E+6 3.75E6 0.15E-61.2E70 1E-15 -673 E8 4,7345.7E-6.6 0 58989 -73451 E-31-5 下列哪些常量定义是正确的?CONSThvalue=200;lvalue=0 OR 1 OR 2;firstchar=’a’;t=true;b=true OR false;1-6 假定已作了下述说明:CONSTgap=’’;VARm,n:integer;a,b:real;p,q:boolean;c1,c2:char;指出下列每一语句是否有效,并说明理由:⑴m:=trunk(b)+a⑵p:=m+n⑶read(c1,c2,’’)⑷c1:=gap⑸p:=q AND (ord(c1)<>’a’)⑹m:=n MOD a⑺‘c1’ :=’c2’⑻c2:=chr(‘a’)⑼m:=m-ord(‘0’)⑽writeln(a,p,m,n,q,q,b)⑾ n:=a-trunc(a)⑿b:=2.99*109⒀a:=m/n⒁b:ord(c1)+ord (c2)1-7 已知变量有下面指定的值:a=7,b=-6,c=30,d=10.8600,e=1E3,f=’*’,g=true求下面表达式的值:a+b DIV trunc(d)+3①d-0.75/(e+140.0)*70.0②sqrt(abs(b-a)+succ(ord(f))③chr(10* a MOD sqr(b))④NOT ((a>=b) AND g)⑤(ord(b) OR (sqr(b)>e)) AND (g AND NOT(abs(b)<>6))1-8 已知有如下说明VARp,q,r,s:Boolean;k:integer;试写出下列每一表达式的类型,如能确定,请写出它们的值。
高级语言程序设计

1. ( 单选题) 能将高级语言编写的源程序转换为目标程序的是_____________ 。
(本题10.0分)A、链接程序B、解释程序C、编译程序D、编辑程序学生答案:C标准答案:C解析:得分:102. ( 单选题) C语言程序编译时,程序中的注释部分()。
(本题10.0分)A、参加编译,并会出现在目标程序中B、参加编译,但不会出现在目标程序中C、不参加编译,但会出现在目标程序中D、不参加编译,也不会出现在目标程序中学生答案:B标准答案:D解析:得分:03. ( 单选题) C 语言中的标识符只能由字母、数字和下划线三种字符组成 , 且第一个字符( )(本题10.0分)A、必须为下划线B、可以是字母、数字和下划线中的任意一种C、必须为字母或下划线D、必须为字母学生答案:D标准答案:C解析:得分:04. ( 单选题) 一个 C 程序的执行是从( )(本题10.0分)A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束学生答案:B标准答案:C解析:得分:05. ( 单选题) C 语言提供的合法关键字是( ) (本题10.0分)A、swicthB、chanC、caseD、default学生答案:C标准答案:D解析:得分:06. ( 单选题) C语言程序的基本单位是()(本题10.0分)A、程序行B、语句C、函数D、字符学生答案:B标准答案:C解析:得分:07. ( 单选题) 组成C语言程序的是( )。
(本题10.0分)A、过程B、函数C、子程序D、主程序和子程序学生答案:C标准答案:B解析:得分:08. ( 多选题) 一个计算机程序应包括( )的内容。
(本题10.0分)A、对数据的描述B、对企业的描述C、对操作的描述(算法)D、对社会的描述学生答案:A标准答案:AC解析:得分:59. ( 多选题) C程序注释是由( )所界定的文字信息组成的。
高级语言程序设计(一)课后习题答案
《高级语言程序设计》参考答案
1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。
如:输入36和60,输出为:zdgys=12,zxgbs=180#include<stdio.h>int main(){int i,j,t;int max(int,int);int min(int,int);scanf("%d%d",&i,&j);if(i<j){t=i;i=j;j=t;}printf("zdgys=%d,zxgbs=%d\n",max(i,j),min(i*j,max(i,j)));return 0;}int max(int i,int j){int t;while(j){t=i%j;i=j;j=t;}return i;}int min(int p,int q){return p/q;}又解:#include<stdio.h>int main(){int i,j,t;int max(int,int);int min(int,int);scanf("%d%d",&i,&j);if(i<j){t=i;i=j;j=t;}printf("zdgys=%d,zxgbs=%d\n",max(i,j),min(i*j,max(i,j)));return 0;}int max(int i,int j){int n;for(n=j;n>=2;n--)if ((i%n==0) && (j%n==0)) break;return n;}int min(int p,int q){return p/q;}2. 输入4个整数,找出其中最大的数。
用函数的嵌套调用来处理。
#include<stdio.h>int max2(int a,int b){return(a>b?a:b);}int max4(int a,int b,int c,int d){return max2(max2(max2(a,b),c),d);}int main(){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);printf("max=%d\n",max4(a,b,c,d));return 0;}3. 用递归调用的方法求n!。
高级语言程序设计(Python)习题与答案
一、单选题1、计算机为什么采用二进制,而非十进制作为数制的基础?A.因为二进制比十进制计算速度快B.因为二进制比十进制表示能力更强C.因为二进制数精度更高D.因为二进制数更容易被硬件存储和计算正确答案:D2、Python语言为什么被称为高级程序设计语言?A.因为它是编译型语言B.因为它是解释型语言C.因为它比低级语言更复杂D.因为它比低级语言更抽象正确答案:D3、关于Python语言的执行过程,描述正确的是?A.可以同时执行多条语句B.由解释器一条语句一条语句地执行C.执行过的语句将不会再被执行D.由编译器将源程序转化为机器语言,然后执行正确答案:B4、下列Python程序,没有错误的是?A.print 'Hello, ' print 'World!'B.print 'Hello, I\'m Tom.'C.print 'Hello, this's Tom.'D.Print 'Hello, World!'正确答案:B5、在Spyder IDE中编写Python程序,输出“Hello World”,要求将这两个单词分两行输出,以下哪个程序不正确?A.print 'HelloWorld'B.print 'Hello\nWorld'C.print 'Hello'print 'World'D.print "Hello\nWorld"正确答案:A6、执行下列语句,输出的结果是?x = 7.0y = 5print x % yA.1B.2C.1.0D.2.0正确答案:D7、能实现下面功能的程序是?接收用户输入的一个整数。
如果输入的是偶数,则输出“True”,否则输出“False”。
A.print not bool(raw_input() % 2)B.print int(raw_input()) % 2 == 0C.print int(raw_input()) % 2 == 1D.print bool(int(raw_input()) % 2)正确答案:B8、以下程序的输出结果是?y = 0for i in range(0, 10, 2):y += iprint yA.30B.20C.9D.10正确答案:B9、以下程序的输出结果是?number = 30if number % 2 == 0:print number, 'is even'elif number % 3 == 0:print number, 'is multiple of 3'A.30 is evenB.30 is multiple of 3C.程序出错D.30 is even30 is multiple of 3正确答案:A10、以下程序的输出结果是?x = 1y = -1z = 1if x > 0:if y > 0: print 'AAA'elif z > 0: print 'BBB'A.语法错误B.BBBC.AAAD.无输出正确答案:D11、下列程序的输出结果是:def foo():m = 1def bar():n = 2return m + nm = bar()print mfoo()A.1B.3C.程序出错D.2正确答案:B12、字符串s长度为奇数,则显示中间字符的表达式为?A.s[len(s)/2 - 1]B.s[len(s)/2 + 1]C.s[len(s)/2]D.s[(len(s) + 1)/2]正确答案:C13、关于元组数据结构,下面描述正确的是:A.元组不支持切片操作B.所有元素数据类型必须相同C.支持 in 运算符D.插入的新元素放在最后正确答案:C14、一个学生的信息包括:学号、姓名、年龄、性别、电话。
计算机高级语言程序设计(c++)习题答案
第1章一、选择题1. C2. C3. B二、填空题1. main2. { }3. ;(分号)4. 机器语言5. 编译6. 链接7. 运行8. 单行注释块注释三、思考题1. 特定的机器语言较难理解,不易于人们编写相关的程序。
2. 计算机程序设计语言从机器语言发展到结构化程序设计语言极大地提高了编写程序的效率,但到了20世纪90年代,结构化程序设计对软件危机的缓解已起不到太大的作用,大型软件的投资失败,软件系统的不可维护性与不可靠性等现象依然存在。
在抽象数数据类型和交互式环境设计思想的基础上,出现了面向对象的程序设计技术。
3. 面向对象的程序设计是以所处理的数据为中心,而不是以函数功能为中心来编写程序的,它采用对象作为描述问题的实体。
对象是包含现实世界事物特征的抽象实体,反映了系统的信息交互的能力,因此,用面向对象的程序设计方法设计出的程序具有较强的稳定性。
4. 预处理命令、输入输出、语句、函数、常量、变量、类。
5. 通过输入输出的函数来完成。
6.(1)建立应用项目。
①建立项目及工作区。
②建立主程序文件。
(2)运行程序。
选择“编译”菜单中的“编译程序名.cpp”,编译源程序;然后选择“编译”菜单中的“编译文件名.exe”连接目标文件。
四、上机操作题1. 写出运行结果:(1)This is a C++ program。
(2)请输入两个数字:3 23+2=52. 程序如下:#include <iostream>using namespace std;void main(){cout<<"* * * * * * * * * * * * * *\n";cout<<" Hello World! \n";cout<<"* * * * * * * * * * * * * *\n";}第2章一、选择题1. C2. A3. B4. C5. B二、填空题1. 按位取反2. 等于3. 0~42949672954. 0x开头的整数5. \n6. 以‘\0’作为结束标志7. short -> int ->long -> float -> double三、思考题1. C++基本数据类型有char(字符型)、int(整型)、float(浮点型)、double(双精度型)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。
#include<stdio.h>int main(){int i,j,t;int max(int,int);int min(int,int);scanf("%d%d",&i,&j);if(i<j){t=i;i=j;j=t;}printf("%d %d\n",max(i,j),min(i*j,max(i,j)));return 0;}int max(int i,int j){int t;while(j){t=i%j;i=j;j=t;}return i;}int min(int p,int q){return p/q;}2. 输入4个整数,找出其中最大的数。
用函数的嵌套调用来处理。
#include<stdio.h>int main(){int max4(int,int,int,int); //对max4的函数声明int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者return 0;}int max4(int a,int b,int c,int d) //定义max4函数{int max2(int,int); //对max2的函数声明return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数}int max2(int a,int b){return(a>b?a:b); //返回条件表达式的值,即a和b中的大者}3. 用递归调用的方法求5!。
#include<stdio.h>int main(){int fac(int);int n;scanf("%d",&n);printf("%d!=%d\n",n,fac(n));return 0;}int fac(int n){if(n==0||n==1)return 1;elsereturn fac(n-1)*n;}4. 按以下递归公式求函数的值。
⎩⎨⎧>+-==)1(2)1()1(10 fun(n)n n fun n 例如,当给n 输入5时,函数值为18,(要求用递归实现)。
#include<stdio.h>int main(){int fun(int);int n;scanf("%d",&n);printf("%d\n",fun(n));return 0;}int fun(int n){if(n==1)return 10;elsereturn fun(n-1)+2;}5. 用递归法将一个整数n 转换成字符串。
例如,输入483,应输出字符串“483”,n 的位数不确定,可以是任意位数的整数。
#include<stdio.h>void main(){void fun(int);int n;scanf("%d",&n);if(n<0){n=-n;putchar('-');}fun(n);puts("");}void fun(int m){if(m/10)fun(m/10);putchar(m%10+48);}6. 写一个函数,完成将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。
#include<stdio.h>#define N 5int main(){void fun(int a[]);int a[N],i;for(i=0;i<N;i++)scanf("%d",&a[i]);fun(a);return 0;}void fun(int a[N]){int t,i;for(i=0;i<N/2;i++){t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}for(i=0;i<N;i++)printf("%d ",a[i]);puts("");}7. 编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。
#include<stdio.h>int main(){float average(int c[],int n);int i,score_1[5],score_2[10];float p,q;for(i=0;i<5;i++)scanf("%d",&score_1[i]);for(i=0;i<10;i++)scanf("%d",&score_2[i]);p=average(score_1,5);q=average(score_2,10);printf("%f\n%f\n",p,q);return 0;}float average(int c[],int n){ float m=0.00;int i;for(i=0;i<n;i++)m=m+c[i];return(m/n);}8. 编写一个函数,实现将两个字符串连接起来,并在main函数中调用此函数,不要调用系统提供的strcat函数。
#include<stdio.h>int main(){void c(char st1[],char st2[]);char s1[100],s2[100];gets(s1); gets(s2);c(s1,s2); puts(s1);return 0;}void c(char st1[],char st2[]){int i=0,k=0;while(st1[++i]);while(st1[i++]=st2[k++]);}9. 编写一个函数,比较两个字符串的大小,并在main函数中调用此函数,不要调用strcmp函数。
#include<stdio.h>int main(){char a[100],b[100];void fun(char a[],char b[]);gets(a);gets(b);fun(a,b);return 0;}void fun(char a[],char b[]){for(int i=0;;i++){if(a[i]>b[i]){puts(a);break;}else if(a[i]<b[i]){puts(b);break;}elsecontinue;}}10. 编写一个函数,实现在一个升序排列的整型数组中插入一个整数的功能,并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。
#include<stdio.h>int a[11]={1,3,5,7,14,23,45,87,155,231};int main(){int c,i;void fun(int a[],int c);printf("input an integer:");scanf("%d",&c);fun(a,c);for(i=0;i<11;i++)printf("%d ",a[i]);printf("\n");return 0;}void fun(int a[],int t){int i,j;if(t>a[9])a[10]=t;else{for(i=0;i<11;i++)if(t<a[i])break;for(j=10;j>i;j--)a[j]=a[j-1];a[i]=t;}}11. 写一个判断素数的函数,在主函数输入一个整数,是素数时输出yes,否则输出no,结果要求在主函数中输出。
#include<stdio.h>int main(){int a;int is_prime(int);scanf("%d",&a);if(is_prime(a)==0)printf("yes\n");elseprintf("no\n");return 0;}int is_prime(int a){int j,flag=1;for(j=2;j<=a/2;j++){if(a%j==0)break;}if(j>=a/2)flag=0;return flag;}12. 编写一个函数,将一个字符串中的原音字母赋值到另一个字符串中,并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。
#include<stdio.h>char a[50],b[50]={0};int main(){void fun(char a[],char b[]);gets(a);fun(a,b);puts(b);return 0;}void fun(char a[],char b[]){int i,j;for(i=0,j=0;a[i]!='\0';i++)if(a[i]=='a'||a[i]=='A'||a[i]=='e'||a[i]=='E'||a[i]=='i'||a[i]=='I'||a[i]=='o'||a[i]=='O'||a[i]=='u'||a[i]=='U')b[j++]=a[i];}13. 建立动态数组,输入5个学生的成绩,编写函数检查其中有无低于60分的学生成绩,要求输入和输出功能在主函数中完成。
#include<stdio.h>#include<stdlib.h>int main(){void check(int *);int *p,i;p1=(int *)malloc(5*sizeof(int));for(i=0;i<5;i++)scanf("%d",p+i);check(p1);return 0;}void check(int *p){int i;printf("They are fail:");for(i=0;i<5;i++)if(*(p+i)<60)printf("%d ",p[i]);puts("");}14. 有一个一维数组score,内放10个学生成绩,用一个函数求平均成绩,并将10个成绩中不及格(小于60)的成绩和该成绩在数组中的序号输出。