函数练习题(C语言)带答案
C语言练习题一及答案
C语言练习题一一、填空题。
(每空1分,共10分)1.语句while(e==0):中的条件e==0等价于_____________;答案:!e2 printf(“%4s”,“beijing”);输出为:_____________;答案:beijing3.C语言中的字符串以字符_____________;答案:答案:\04.C语言可以处理的文件类型是_____________和_____________;答案:文本文件和二进制文件5,int(*P)[5];说明p是:_____________;答案:指向一维整形数组的指针变量6.函数直接或间接地调用自己,被称为函数的_____________;答案:递归7.若有static int x[5],x[4]的地址表示是:___________ 。
答案:&x[4]或x+48.有程序段如下:int x=l:while (x<=lO){x+=3;printf(“%d\n”,x);}则:函数printf()执行次数是____4_____ ,循环结束后X的值是___________ 。
答案:139.若有以下定义和语句,则sizeof(a)的值是_____,答案:12,而sizeof(b)的值是__。
答案:4 struct{int day;char month;int year;}a,*b;10.若有static char c[10] = “China”;执行该语句后c[1]= ___________ 。
答案:h c[5]= ___________ 。
答案:\0c[6]= ___________ 。
答案:\0 strlen(c)= ___________ 。
答案:511.若有Static char c[s]={’a’,’b’,’\0’(零),‘c’,‘d’};printf(“%s\n”,c):则输出内容为:___________ 。
答案:ab12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。
C语言练习题(带答案)
一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B )。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)1238、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age9.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。
A)2.5 B)2 C)1 D)311.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是__A__。
A) 3 B) 4 C) 0 D) 112.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是( B).A)4 B)3 C)2 D)0 E)113.C语言中,关系表达式和逻辑表达式的值是(B)。
函数、指针与结构体练习题-参考答案
(一)选择题1.以下正确的说法是_________.建立函数的目的之一是 a)提高程序的执行效率b)提高程序的可读性c)减少程序的篇幅d)减少程序文件所占内存2.以下正确的函数原型声明形式是________.a)double fun(int x,int y)b)double fun(int x; int y)c)double fun(int x, int y);d)double fun(int x,y);3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为______.A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是______.a)floatb)intc)longd)double5.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array 的错误定义方式为________.int a[3][4];f(a);a)f(int array[][6])b)f(int array[3][])c)f(int array[][4])d)f(int array[2][5])6.以下程序的正确运行结果是_________.#include <>void num(){ extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;main(){int a=7,b=5;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);}a)12,2 b)不确定 c)5,25 d)1,127.以下正确的描述是____________.a)C语言的预处理功能是指完成宏替换和包含文件的调用b)预处理指令只能位于C源程序文件的首部c)凡是C源程序中行首以"#"标识的控制行都是预处理指令d)C语言的编译预处理就是对源程序进行初步的语法检查8.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.a)仅仅搜索当前目录b)仅仅搜索源程序所在目录c)直接按系统设定的标准方式搜索目录d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索9.当调用函数时,实参是一个数组名,则向函数传送的是_____.A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值10.函数的值通过return语句返回,下面关于return语句的形式描述错误的是_____.表达式; (表达式);C.一个return语句可以返回多个函数值D.一个return语句只能返回一个函数值11.设函数fun的定义形式为void fun(char ch,float x){…}则以下对函数fun的调用语句中,正确的是_____.("abc",; =fun('D',; ('65',; (32,32);12.以下程序的输出结果是_____.void reverse(int a[],int n){ int i,t;for(i=0;i<n/2;i++){ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}main( ){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf(" %d\n ",s);}B.1013.阅读下列程序,则运行结果为_____.fun( ){ static int x=5;x++;return x;}main( ){ int i,x;for(i=0;i<3;i++)x=fun( );printf("%d\n",x);}B.614.若使用一维数组名作函数实参,则以下正确的说法是_____.A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调用函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致15.在C语言中,定义函数时函数的类型可以缺省,此时函数的隐含类型是_____. 16.在C语言中,形参的缺省存储类别是( ).17.以下关于字符串的叙述中正确的是_____.语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小18.阅读程序,选择程序的运行结果。
C语言 练习题(函数)
一、选择题1. 以下程序的运行结果是。
#include<stdio.h>int fun(int n){int m=0,f=-1,i;for(i=1;i<=n;i++){m=m+i*f;f=-f;}return m;}int main(){printf("m=%d\n",fun(10));return 0;}A.m=5 B.m=-6 C.m=6 D.m=-52. C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是。
A.地址传递B.单项值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式3. 以下程序有语法性错误,有关错误原因的正确说法是。
#include<stdio.h>int main(){int G=5,k;void prt_char ( );...k=prt_char(G);...}A.语句void prt_char( ); 有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线4. 以下程序的运行结果是。
#include<stdio.h>int fun(int a,int b){if(a>b) return (a+b);else return (a-b);}int main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);return 0;}A.-16 B.-17 C.17 D.165. 以下程序的功能是计算函数F(x,y,z) = (x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include<stdio.h>#include<math.h>float f(float,float);int main( ){float x,y,z,sum;scanf("%f%f%f",&x,&y,&z);sum=f( )+f( );printf("sum=%f\n",sum);return 0;}float f(float a,float b){float value;value=a/b;return value;}A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y 6. 以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
c语言习题带答案
基本语句练习1、若有以下程序段 D#include””void main( ){ int a=2,b=5;Printf(“a=%%d,b=%%d\n”,a,b);}其输出结果是()A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d2、以下程序段 Cfloat a=; printf(“|%6.0f|\n”,a);其输出结果是()A、||B、||C、| 3|D、|3.|3、以下程序段的输出结果是() Cfloat a=; printf(“*%010.2f*\n”,a);A、**B、**C、**D、**4、下面语句 printf(“|%8.5f|\n”,; 的输出结果是() CA、||B、||C、||D、||5、若变量都已经正确说明,则以下程序段: Ca=2; b=3; printf(a>b ”***a=%d”: “###b=%d”,a,b);A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=36、执行下列程序时输入1234567,程序的运行结果为() B#include””void main( ){int x, y;scanf(“%2d%2ld”,&x,&y);printf(“%d\n”, x+y);}A、17B、46C、15D、97、已知char a; int b; float c; double d; 则表达式a*b+c-d结果为()型。
AA、doubleB、intC、floatD、char8、根据定义和数据的输入方式,输入语句的正确形式是() B已有定义float f1, f2;数据的输入方式:A、scanf(“%f,%f”,&f1,&f2);B、scanf(“%f%f”,&f1,&f2);C、scanf(“%3.2f%2.1f”,&f1,&f2);D、scanf(“%3.2f, %2.1f”,&f1,&f2);9、以下程序的输出结果为() *, *#include””void main( ){printf( “ *%f, %4.3f*\n”, , ;}10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结构的是()。
c语言函数练习题附答案
函数一、选择题1.在c语言中以下不正确的说法是:()A.实参可以是常量、变量、或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致2.以下程序有语法性错误,有关错误原因的正确说法是:()int main(){ int G=5,k;void prt_char();……k=prt_char(G);……}A.语句void prt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线3.以下正确的说法是:()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参5.以下所列的各函数首部中,正确的是:()A、 void play(var :Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:()A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定7.有以下程序void fun (int a,int b,int c){ a=456; b=567; c=678;}int main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d,%d\n",x,y,z);return 0;}输出结果是:()A、30,20,10B、10,20,30C、456,567,678D、678,567,4568.下述函数定义形式正确的是()。
C语言习题练习(附答案)
《高级语言程序设计》习题一.填空题1. 以下条件表达式可计算1+|a|的值,填空完成语句:a>=0 ?(1+a ):( 1-a )2. 函数max 定义的首部为:int max(int x[],int n),该函数完成实现寻找长度为n 的数组x 中的最大元素。
若在主函数中有定义:int c,a[10];并要求函数调用后,变量c 存放数组a 中的最大元素,则函数调用语句应为:(c=max(a,10);)3. 若有int i=5; 则循环语句while(i > = 1) i - -;执行后,i 的值为 (0)。
4. 能正确表示逻辑关系:“0≤a <10”的C 语言表达式是(0<=a && a<10)。
5. 设int a[2][3] = {{2},{3}};则数组元素( a[1][0] )的值为3。
6. 表达式 (int)(3.0/2.0)的值是( 1 )。
7. 有定义: int x=3, y=2; 执行x/=y+1; 语句后x 的值为( 1 ) 。
8. 有定义: int x=2, y=0; 表达式 (!x||y) 的值为( 0 )。
9. 有定义:char str[]= “Hello!”; 则数组str 的长度为( 7 )。
10. 有定义:int i=5; 则循环语句while(i>=1) i=i-2; 执行后变量i 的值为( -1 )。
11. 已知 ‘A ’~ ‘Z ’ 的ASCII 码为65~90,当执行int x= ‘D ’+5; 语句后x 的值为( 73 )。
12. 有定义int a[6]={1,2,3,4,5,6},*p=a; 则*(p+2)的值为( 3 ),*(++P )的值为( 2 )。
13. 如果在调用一个函数过程中,又调用另一个函数,称为函数的( 嵌套 )调用。
如果在调用一个函数的过程中又直接或间接地调用该函数本身,称为函数的( 递归 )调用。
(完整版)C语言练习题(谭浩强第四版)..附有答案
一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:( )A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:( )A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B。
C程序的注释可以写在语句的后面C。
函数是C程序的基本单位D。
主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C。
整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int〈=long int 〈=float〈doubleB、char=int<long int 〈=float〈doubleC、char〈int<long int=float=doubleD、char=int=<long int <=float<double10、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n",c2-c1,c2-‘a’+’A');则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定11、以下合法的赋值语句是:( )A、x=y=100B、d-—;C、x + yD、c = int(a+b);12、在以下一组运算符中,优先级最高的是:()A、〈=B、==C、%D、&&13、下列能正确表示a≥10或a≤0的关系表达式是:()A、a〉=10 or a〈=0B、a<=10 || a>=0C、a〉=10 || a〈=0D、a〉=10 && a<=014、下列只有当整数x为奇数时,其值为“真"的表达式是:( )A、x%2==0B、!(x%2==0)C、(x—x/2*2)==0D、!(x%2)15、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a〈=10 || a〉=15)C、a>10 && a〈15D、!(a<=10) && !(a>=15)16、已知x=43, ch='A',y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”17、表达式17%4 /8的值为:( )A、0B、1C、2D、318、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句 B。
C语言练习试题[带详解答案解析]
一、编程题1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);} elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
函数单调性及奇偶性练习(含答案)
1、已知函数f (x )=ax 2+bx +3a +b 是偶函数,且其定义域为[a -1,2a ],则( )A .31=a ,b =0 B .a =-1,b =0 C .a =1,b =0 D .a =3,b =0 2、已知f (x )是定义在R 上的奇函数,当x ≥0时,f (x )=x 2-2x ,则f (x )在R 上的表达式是( )A .y =x (x -2)B .y =x (|x |-1)C .y =|x |(x -2)D .y =x (|x |-2)3、函数1111)(22+++-++=x x x x x f 是( )A .偶函数B .奇函数C .非奇非偶函数D .既是奇函数又是偶函数4、若)(x ϕ,g (x )都是奇函数,2)()(++=x bg a x f ϕ在(0,+∞)上有最大值5, 则f (x )在(-∞,0)上有( )A .最小值-5B .最大值-5C .最小值-1D .最大值-35、已知()f x 是偶函数,x R ∈,当0x >时,()f x 为增函数,若120,0x x <>,且12||||x x <, 则 ( )A .12()()f x f x ->-B .12()()f x f x -<-C .12()()f x f x ->-D . 12()()f x f x -<-6、定义在(-1,1)上的函数f(x)是奇函数,并且在(-1,1)上f(x)是减函数,求满足条件f(1-a)+f(1-a2)<0的a取值范围. ( )A.(0,1) B.(-2,1) C.[0,1] D.[-2,1]7、已知函数f(x)是定义在区间[-2,2]上的偶函数,当x∈[0,2]时,f(x) 是减函数,如果不等式f(1-m)<f(m)成立,求实数m的取值范围.( ) A.1[1,)2- B.[1,2] C.[-1,0] D.(11,2-) 8、已知函数⎩⎨⎧<-≥+=0,40,4)(22x x x x x x x f 若2(2)(),f a f a ->则实数a 的取值范围是 ( ) A (,1)(2,)-∞-⋃+∞ B (1,2)- C (2,1)- D (,2)(1,)-∞-⋃+∞9、已知函数f (x )为偶函数,且其图象与x 轴有四个交点,则方程f (x )=0的所有实根 之和为________10、已知偶函数y =f(x)在区间[0,4]上是单调增函数,则f(-3)与f(π)的大小关系是__________11、若定义在R 上的函数f(x)满足:对任意x 1、x 2∈R 有f(x 1+x 2)=f(x 1)+f(x 2)+1,则下列 说法一定正确的序号是__________.①f(x)为奇函数 ;②f(x)为偶函数 ;③f(x)+1为奇函数 ;④f(x)+1为偶函数12、若(1)()()x x a f x x++=是奇函数,则a =___13、已知f(x)是奇函数,定义域为{x|x ∈R 且x ≠0},又f(x)在(0,+∞)上是增函数,且f(-1)=0,则满足f(x)>0的x 取值范围是________.14、已知)(x f y =是偶函数,当0>x 时,2)1()(-=x x f ;若当⎥⎦⎤⎢⎣⎡--∈21,2x 时,m x f n ≤≤)(恒成立,则n m -的最小值为15、 设函数y =f (x )(x ∈R 且x ≠0)对任意非零实数x 1、x 2满足f (x 1·x 2)=f (x 1)+f (x 2),求证f (x )是偶函数.16、设函数f(x)=21xb ax ++是定义在(-1,1)上的奇函数,且f(21)=52,(1)确定函数f(x)的解析式;(2)用定义证明f(x)在(-1,1)上是增函数;(3)解不等式f ( t -1)+ f (t) < 0。
C语言程序设计函数练习题及参考答案
C语言程序设计练习题及参考答案1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c)return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为3,b中的值原为8,程序运行后a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
例如,输入的数为:55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。
c语言程序基础练习题500道(附答案)
c语言程序基础练习题500道(附答案)1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
C语言经典练习题50道(附答案)
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
C语言程序设计教程第四章练习题解析(1)
B.4
C.5
D.6
答案:A
解析:(v1, v2),(v3,v4,v5)和v6一共三个实参
3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()
A.printf()函数可以向任何地方输出数据
B.printf()只向控制台输出数据
C.scanf()只能输入英文字母和数字
D.scanf()函数可以识别输入的空格
s=2;
else
s=n-fun(n-1);
return s;
}
void main()
{
printf("%ld\n", fun(3));
}
A.1
B.2
C.3
D.4
答案:A
解析:fun()函数传入3时,返回3-fun(2);fun()函数传入2时,返回2。所以fun(3)返回3-2=1。
23、在C语言中,函数的隐含存储类别是()。
12、C语言程序的基本单位是()。
A.程序行
B.语句
C.函数
D.字符
答案:C
解析:函数是C语言程序的基本单位
13、C语言中决定函数返回值的类型的是()。
A.return语句中的表达式类型
B.调用函数的主调函数类型
C.调用函数时临时
D.定义函数时所指定的函数类型
答案:D
解析:函数的返回值取决于定义函数时指定的返回值类型
28、下列程序的输出结果是()。
int b=2;
int func(int *a)
{
b += *a;
return b;
}
void main()
{
int a=2, res=2;
c语言练习题及参考答案
5.
设说明为 int a[3]={1,2}, *p=a; 则*p与*(p+2)的值分别是【 A) 1和0 B) 0和1 C) 1和2
6.
设说明为 int a=10; 执行语句 a*=1+2+3; 后a的值是【 A) 15 B) 24 C) 33 】 。
7.
为表示关系x≥y≥z,应使用C语言表达式【 A) (x>=y>=z) B) (x>=y)AND(y>=z)
1
printf("a1+a2+a3=%d\n", a1+a2+a3); D) 不确定
10. putchar函数可以向终端输出一个【 A) 整型变量值 B) 实型变量值
】 。 C) 字符串 】 D) 字符或字符变量
11. 执行下面程序段,屏幕输出的值是【 int x; printf("%d\n", (x=3*5, x+5)); A) 10 B) 15
D) 11 】 。
18. 设说明为 char str[6]={'a', 'b', '\0', 'c', 'd', '\0'}; 执行printf("%s", str); 后输出的结果是【 A) abcd B) abc C) ab printf("%d D) ad
19. 定义如下变量和数组,则语句 for(i=0; i<3; i++) int i; int x[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}; A) 1 5 9 B) 1 4 7
B) 继续执行break语句之后的循环体各语句 D) 终止程序运行 】 。 D) 1 】 。
C语言练习题(带详解答案)
一、编程题1.输入2个整数,求两数的平方和并输出。
#include<stdio.h>intmain(void){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("theresultis%d\n",s);return0;}2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include<stdio.h>#definePI3.14intmain(void){doubler,area,girth;printf("pleaseinputr:\n");scanf("%lf",&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf("theareais%.2f\n",area);printf("thegirthis%.2f\n",girth);}elseprintf("Inputerror!\n");return0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1(x<0)y=0(x=0)2x-1(x>0)#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);if(x<0)y=2*x+1;elseif(x>0)y=2*x-1;elsey=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥,90等级为A;80≤score<9,0等级为B;70≤score<8,0等级为C;60≤score<7,0等级为D;score<60,等级为E。
C语言练习4(函数)=参考答案
C语言(函数,变量作用范围)一、选择题1 下列定义不正确的有 ( C ) 。
A)#define PI 3.141592 B)#define S 345C)int max(x,y); D)char c;int x,y ;{ }2 下列程序结构中,不正确的是 ( B )。
A)main() B) main(){float a,b,c; {float a,b,c;scanf("%f,%f",&a,&b); scanf("%f,%f",&a,&b);c=add(a,b); c=add(a,b);...... .....} }int add(float x,float y) float add(float x,float y) { ... } { ... }C)float add(float x,float y); D)float add(float x,float y) main() { ... }{float a,b,c; main()scanf("%f,%f",&a,&b); {float a,b,c;c=add(a,b); scanf("%f,%f",&a,&b);...... c=add(a,b);} .....float add(float x,float y) }{ ... }3 一个C语言的程序总是从( A )开始执行的.A)main函数B)文件中的第一个函数C)文件中的第一个子函数调用D)文件中的第一条语句4 以下正确的函数定义是( D ).A)double fun(int x,int y){z=x+y; return z;}B) double fun(int x,int y);{int z;z=x+y; return z;}C) fun(int x,y){int z; return z;}D) double fun(int x,int y){double z;z=x+y; return z;}5 以下正确的函数声明形式是( D ).A) double fun(int x,int y)B) double fun(int x;int y)C) double fun(int ,int )D) double fun(int ,int );6 以下说法中正确的是( A )在C语言中A)实参与其对应的形参各占用独立的存储单元B)实参与其对应的形参占用同一个存储单元C)只有当实参与形参同名时才占用同一个存储单元D)实参占用存储单元,但形参是虚拟的,不占用存储单元7 设有如下函数定义:int f(char *s){ char *p=s ;while(*p!='\0') p++;return(p-s) ;}如果在主程序中用下面的语句调用上述函数,则输出结果为( A ). printf("%d\n",f("goodbye!"));的输出结果是A) 3 B) 6 C) 8 D) 08 下面程序段中,主函数中变量a被初始化为 ( C )。
C语言程序设计教程第四章练习题解析(1)
单选题1、关于C语言中的函数,下列描述正确的是()A。
函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的嵌套均不可以嵌套D.函数的定义和函数的调用均不可以嵌套答案:B解析:函数的定义不可以嵌套,但函数的调用可以嵌套2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个A.3B。
4C。
5D.6答案:A解析:(v1,v2),(v3,v4,v5)和v6一共三个实参3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()A。
printf()函数可以向任何地方输出数据B。
printf()只向控制台输出数据C。
scanf()只能输入英文字母和数字D.scanf()函数可以识别输入的空格答案:B解析:printf()是向控制台输出的函数4、在C语言中,内部函数需要添加的关键字是()A.externB.staticC.thisD。
auto答案:B解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。
5、当调用时,会调用内部函数A。
当调用时,会调用内部函数B。
当调用时,会调用外部函数C。
当调用时,会调用两次,先调用内部函数再调用外部函数D。
都不调用,会报错答案:A解析:当内部函数与外部函数重名时,会优先调用内部函数6、在C语言中,声明外部函数需要添加的关键字是( )A。
externB。
staticC。
thisD.auto解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字7、关于C语言中的局部变量,下列描述中错误的是( )A.局部变量就是在函数内部声明的变量B.局部变量只在函数内部有效C.局部变量只有当它所在的函数被调用时才会被使用D。
局部变量一旦被调用,其生存周期持续到程序结束答案:D解析:当函数调用结束时局部变量就会失去作用8、关于C语言中的全局变量,下列描述中正确的是()A。
[练习]C语言实验七、函数程序设计答案
实验七 函数及程序结构(二)一、实验目的1.掌握函数的嵌套调用和递归调用2.掌握数组做函数参数的用法3.掌握全局变量和局部变量的用法。
?4.掌握变量的存储类别。
?二、实验内容1.[目的]掌握函数的嵌套调用方法。
[题目内容] 编写程序计算cb a 。
要求设计主函数main()读取a 、b 、c 的值,并调用ratio 函数计算a/(b-c)的值。
如果(b-c)=0那么ratio 就不能计算,因此,ratio 函数调用另一个函数dif ,以测试(b-c)的差是否为零,如果b 不等于c ,dif 返回1,否则返回0。
[输入] a 、b 、c 的值[输出] 计算结果[提示] main 函数调用ratio 函数,ratio 函数调用dif 函数。
三个函数平行定义,嵌套调用。
#include <stdio.h>void main(){float ratio(int x,int y ,int z);int dif(int x,int y);int a,b,c;float d;printf("请输入a,b,c:");scanf("%d%d%d",&a,&b,&c);d=ratio(a,b,c);if(d==0.0) printf("b-c 为零。
");else printf("%d/(%d-%d)=%f\n",a,b,c,d);}float ratio(int x,int y ,int z){if(dif(y ,z)==1) return (float)x/(float)(y-z);else return 0.0;}int dif(int x,int y){if(x==y) return 0;else return 1;}2.[目的]利用标准库提供的随机数功能。
[题目内容]编写程序,帮助小学生练习乘法计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言函数练习题一、选择题1. 一个完整的C源程序是【】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)longC)int D)double6. 以下关于函数叙述中,错误的是【】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。
A)参数的形实结合B)函数返回值C)全局变量D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实参将其值传递给形参,调用结束时形参再将其值回传给实参D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【】。
A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元11. 若用数组名作为函数调用的实参,则传递给形参的是【】。
A) 数组的首地址B) 数组的第一个元素的值C) 数组中全部元素的值D) 数组元素的个数12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【】。
A)实参与其对应的形参共用同一段存储空间B)实参与其对应的形参占用相同的存储空间C)实参将其地址传递给形参,同时形参也会将该地址传递给实参D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递13. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【】。
A)为全局变量,在本程序文件范围内有效B)为局部变量,只在该函数内有效C)为局部变量,只在该复合语句中有效D)定义无效,为非法变量14. C语言中函数返回值的类型是由【】决定。
A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是【】。
A)extern static float a; B)float a;C)extern auto float a; D)extern float a;16. 定义一个void型函数意味着调用该函数时,函数【】A)通过return返回一个用户所希望的函数值B)返回一个系统默认值C)没有返回值D)返回一个不确定的值17. 若定义函数float *fun( ),则函数fun的返回值为【】。
A)一个实数B)一个指向实型变量的指针C)一个指向实型函数的指针D)一个实型函数的入口地址18.C语言规定,程序中各函数之间【】。
A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用19. 若程序中定义函数float myadd(float a, float b){ return a+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。
以下说明中错误的是【】。
A)float myadd( float a,b);B)float myadd(float b, float a);C)float myadd(float, float);D)float myadd(float a, float b);20. 关于以下fun函数的功能叙述中,正确的是【】。
int fun(char *s){char *t=s;while(*t++) ;t--;return(t-s);}A) 求字符串s的长度B) 比较两个串的大小C) 将串s复制到串t D) 求字符串s所占字节数21. 下面程序段运行后的输出结果是【】(假设程序运行时输入5,3回车)int a, b;void swap( ){int t;t=a; a=b; b=t;}main(){scanf("%d,%d", &a, &b);swap( );printf ("a=%d,b=%d\n",a,b);}A) a=5,b=3 B) a=3,b=5 C)5,3 D)3,522. 以下程序运行后的输出结果是【】。
fun(int a, int b){if(a>b) return a;else return b;}main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}A) 3 B) 6 C) 8 D) 1223. 以下程序的运行结果是【】。
void f(int a, int b){int t;t=a; a=b; b=t;}main(){int x=1, y=3, z=2;if(x>y) f(x,y);else if(y>z) f(x,z);else f(x,z);printf("%d,%d,%d\n",x,y,z);}A) 1,2,3 B) 3,1,2C) 1,3,2 D) 2,3,124. 以下程序运行后的输出结果为【】。
int *f(int *x, int *y){if(*x<*y) return x;else return y;}main(){int a=7,b=8,*p,*q,*r;p=&a, q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}A) 7,8,8 B) 7,8,7C) 8,7,7 D) 8,7,825. 以下程序的正确运行结果是【】。
#inclued<stdio.h>main(){int k=4,m=1,p;p=func(k,m);printf(“%d”,p);p=func(k,m);printf(“%d\n”,p);}func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return (m);}A)8,17 B)8,16 C)8,20 D)8,8 26. 以下程序的功能是计算函数F(x,y,z)=(x+z)/(y-z)+(y+2×z)/(x-2×z)的值,请将程序补充完整。
#include<stdio.h>float f(float x,float y){float value;value= 【1】;return value;}main(){float x,y,z,sum;scanf("%f%f%f",&x,&y,&z);sum=f(x+z,y-z)+f(【2】);printf("sum=%f\n",sum);}【1】A)x/y B)x/z C)(x+z)/(y-z) D)x+z/y-z【2】A)y+2z,x-2z B)y+z,x-z C)x+z,y-z D)y+z*z,x-2*z 27. 以下程序的功能是根据输入的字母,在屏幕上显示出字符数组中首字符与其相同的字符串,若不存在,则显示“No find,good bye!”,请将程序补充完整。
#include<stdio.h>char PriStr(char ch1){int i=0,j=0;static char *ch2[]={"how are you", "glad to meet you","anything new","everything is fine","very well,thank you","see you tomorrow"};while(i++<6)if(ch1==【1】){puts(【2】);j=1;}return j;}main(){char ch;printf("\nPleae enter a char:");ch=getchar();ch=PriStr(ch);if(ch==【3】)puts("No find, good bye! ");}【1】A)ch2[i][0] B)ch2[i-1][0] C)*ch2[i] D)*ch2[i-1][0]【2】A)ch2[i] B)*ch2[i] C)*ch2[i-1] D)ch2[i-1]【3】A)’0’B)’48’C)0 D)3028. 以下程序是将输入的一个整数反序打印出来,例如输入1234,则输出4321,输入-1234,则输出-4321。
请将程序补充完整。
void printopp(long int n){int i=0;if(n==0)return ;elsewhile(n){if(【1】) printf("%ld",n%10);else printf("%ld",-n%10);i++;【2】;}}main(){long int n;scanf("%ld",&n);printopp(n);printf("\n");}【1】A)n<0&&i==0 B)n<0||i==0 C)n>0&&i==0 D)n>0||i==0 【2】A)n%=10 B)n%=(-10) C)n/=10 D)n/=)-10)29. 下面的程序用递归定义的方法实现求菲波拉契数列1、1、2、3、5、8、13、21……第7项的值fib(7),菲波拉契数列第1项和第2项的值都是1。