C语言复习题函数
C语言复习题30640
一、选择题1.在每个C程序中都必须包含有这样一个函数,该函数的函数名为 A 。
A. mainB. MAINC. nameD. function2.在以下关于C语言的注释的叙述中,不正确的是C。
A.注释可用"/*"、"*/"形式表示,也可用"//"形式表示B.编译器在编译一个程序时,将跳过注释,不对其进行处理C.编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度3.以下叙述不正确的是。
A.在C程序中,严格区分大小写字母B.一个C源程序有且仅有一个main函数C.在C程序中,注释只能位于一条语句的后面D.一个C程序总是从main函数开始执行4.下列合法的标识符为A.abde+B. #KDJFC. 67KDJD. DK3_5.关于字符串和字符的关系正确的是A.“A”与’A’是相同的B.字符串是常量,字符是变量C.“A”与’A’是不同的D.“A ”与“A”是相同的6.下面关于语句的说法正确的是A.下面这两段程序的执行效果是一致的B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不一定需要分号D.语句的书写对程序的运行不起作用,因此可以随便写都可以7.以下各标识符中,合法的用户标识符组为 D 。
A.PAd,P#d,b-b,abc,_0123,ssipedB.cin,a10,CPP,float,del_word,signedC.void,max,hiy,<fr>,list,*jerD.a,temp,_isw,INT,keep,wind8.字符串“\”EOF= -\61\””的长度是。
A.8 B.9 C.12 D.非法字符串sin在C程序中对应的不正确的表达式为。
9.数学式xA.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx))C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x)))10.下列是C语言的有效标识符?A._No1 B.No.1 C.12345 D.int 11.C语言中,表示一条语句结束的标号是 BA.# B.; C.// D.}12.每个C程序中都必须有且仅有一个 CA.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是D 。
C语言作业题目函数
2、编写一个计算等差数列和的函数int sum(int begin, int end, int D_value),并在main()函数中调用该函数,计算2+5+8+……+59的值。
3、编写一个函数,该函数的功能是将一个整数反转为一个新的整数,例如:原数为-2389,反转后为-9832。然后在main()函数中调用测试该函数。
4、下列给定程序中,函数fun的功能是:计算函数f(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.5。
编写一个判断盈数的函数,然后在main()函数中调用该函数,输出30以内(包括30)的所有盈数。
(2)一个自然数如果它的真因子(即除了自身以外的约数)之和,比该数本身小,这个自然数就称为“亏数”。例如,10的因子为1、2、5,其和是8,比10本身小,因此10是一个亏数。
编写一个判断亏数的函数,然后在main()函数中调个自然数如果恰好等于它的真因子(即除了自身以外的约数)之和,这个自然数就称为“完全数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是一个完全数。
编写一个判断完全数的函数,然后在main()函数中调用该函数,输出1000以内的所有完全数。
同类问题:
(1)一个自然数如果它的真因子(即除了自身以外的约数)之和,比该数本身大,这个自然数就称为“盈数”。例如,12的因子为1、2、3、4、6,其和是16,比12本身大,因此12是一个盈数。
c语言习题
二.填空题 1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 _1B__,其数值范围为 0~127 ;一个int数据在内存中所占字节数为 2B ,其数值范围为-32768~32767 ;一个long数据在内存中所占字节 数为 4B ,其数值范围为 -2147483648~2147483647 ;一个float 数据在内存中所占字节数为 4B ,其数值范围为 -3.4*1038~-3.4*10-38, 3.4*10-38~3.4*1038 。 2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且 第一个字符必须为 字母 。 3.字符常量使用一对 单引号 界定单个字符,而字符串常量 使用一对 双引号 来界定若干个字符的序列。
3.函数体一般包括( 变量定义序列 ) 和( 执行语句序列
二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束。 【 √ 】 2.main函数必须写在一个C程序的最前面。 【 × 】 3.一个C程序可以包含若干的函数。【 √ 】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运 行不起任何作用。但是可以增加程序的可读性。【 √ 】 5.C程序的注释只能是一行。【 × 】 6.C程序的注释不能是中文文字信息。【 × 】 8.可以使用Turbo C来编译和连接一个C程序。【 √ 】 9.可以使用Turbo C来运行一个C程序。【√ 】 10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 √ 】 三.简答题 1. 写出一个C程序的基本结构。 预处理命令序列 void main() { 变量定义序列 执行语句序列 } 2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。 1)编辑源程序,以扩展名.c存盘。
C语言函数习题
习题一、选择题1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
2、下述程序的输出结果是____A____。
long fun〔int n〕{ long s;if〔n==1|| n==2〕s=2;else s=n-fun〔n-1〕;return s;}main〔〕{ printf〔“%ld\n〞,fun〔3〕〕;}3、C语言中形参的默认存储类别是____A________。
A.自动〔auto〕B.静态〔static〕C.存放器〔register〕D.外部〔extern〕4、下面对函数嵌套的表达中,正确的选项是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套B.函数定义不可以嵌套,但函数调用可以嵌套5、下面关于形参和实参的说法中,正确的选项是____B_____。
A.形参是虚设的,所以它始终不占存储单元6、关于全局变量的作用范围,以下说法正确的选项是____D_______。
7、调用一个函数,此函数中没有return语句,以下说法正确的选项是:该函数____D____。
8、以下函数调用语句中含有____B_____个实参。
fun 〔〔exp1,exp2〕,〔exp3,exp4,exp5〕〕;9、以下程序的输出结果是__C______。
fun〔int a,int b,int c〕{ c=a*a+b*b;}main〔〕{ int x=22;fun〔4,2,x〕;printf〔〞%d〞,x〕;10、以下程序的输出结果是____A _____。
#include <stdio.h>int func (int x,int y){ static int m=2,k=2;k+=m+1;m=k+x+y;return m;}main(){ int a=8,b=1,p;p=func(a,b);printf("%d,",p);p=func(a,b);printf("%d",p);}A.14,29B.14,24C.14,8D.14,3011、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为__B_____。
c语言期末实操复习题
c语言期末实操复习题### C语言期末实操复习题#### 一、基础语法题1. 变量声明与初始化编写一个程序,声明一个整型变量`a`和一个浮点型变量`b`,并将它们分别初始化为10和3.14。
2. 数据类型转换编写代码,将一个整数`x`(例如100)转换为浮点数,并打印转换后的值。
3. 条件语句编写一个程序,使用`if-else`语句判断一个整数`n`是否为正数、负数或零。
4. 循环结构使用`for`循环打印出1到10的数字。
5. 数组操作声明一个整型数组`arr`,包含5个元素,初始化为1, 2, 3, 4, 5,并使用循环打印数组元素。
#### 二、函数与指针1. 函数定义与调用定义一个函数`add`,接受两个整数参数并返回它们的和。
在主函数中调用该函数。
2. 指针基础编写一个程序,声明一个整型变量`num`和一个指向整型的指针`p`,将`num`的地址赋给`p`,并打印通过`p`访问的值。
3. 指针与数组使用指针操作上述数组`arr`,打印数组的最后一个元素。
4. 函数与指针定义一个函数`increment`,该函数接受一个整型指针参数,并使该指针指向的值增加1。
#### 三、结构体与联合体1. 结构体定义与使用定义一个结构体`Student`,包含学生的姓名(字符数组)、学号(整数)和成绩(浮点数)。
声明一个`Student`类型的变量,并初始化。
2. 结构体与指针编写一个函数,接受一个指向`Student`结构体的指针,并打印该学生的姓名和成绩。
3. 联合体基础定义一个联合体`Data`,可以存储整数、浮点数或字符。
声明一个`Data`类型的变量,并分别存储不同类型的数据。
#### 四、文件操作1. 文件的打开与关闭编写一个程序,打开一个文本文件(例如`example.txt`),读取文件内容,并在屏幕上打印,最后关闭文件。
2. 文件的写入编写代码,将字符串"Hello, World!"写入到一个新文件中。
C语言复习题--2015-10-3
C语言程序设计----复习题一、填空1.一个C源程序中至少应包含一个main函数。
2.a是整型变量,则执行表达式a=25/3%3后a的值为。
23.C语言中的数组必须先定义,然后使用。
4.如果需要从被调用函数返回一个函数值,被调用函数必须包含return语句。
5.一个C语言程序的执行起点是____ main函数(或主函数)_______。
6.设int x=3,y=5; 则执行printf("%d\n",x&&y);后输出___1___。
7.定出公式⎪⎪⎭⎫⎝⎛++xyxx521对应的C语言表达式_1.0/2*(x+sqrt(x+y)/(5*x))__。
8.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是___3____。
9.设int a=2;,则执行a+=a*=15;后,变量a的值是___60____。
10.设double y[4][5];,则数组y中元素的个数是__20_____。
11.设int x=7,y=3; 则表达式x%y+x/y的值是____3____。
12.设char s[ ]={"apple"};,则执行printf("%d\n",strlen(s));后输出的值是__5_ 。
13.若有定义int a[3][5];则排列在数组中的第9个元素是(a[1][3] )。
14.strlen("How are you\n")的值是( 12 )。
15.C语言中字符串结束的标志是( '\0' )。
16.写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是( float s[6]={0}; )。
17.strcmp("how","How")的值是( 32 或>0 )。
18.若a=2.8+7%3*11%2/4,a的值是( 2.8 )19.若a= 5/2+5.0/2+7%6,a的值是( 5.5 )20.若a=12,a*=2+3 a的值是( 60 )21.若a=3,b=4,c=5,a+b>c&&b= =c 表达式的值是( 0 )22.设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),表达式后m,n的值是( m=0, n=1 )23.设int b=7;float a=2.5,c=4.7;求下面表达式的值是( 4.5 )a+(int)(b/2*(int)(a+c)/2)%4二、判断题1.若定义的函数没有参数,则函数名后的圆括号可以省略。
【知识】C语言复习题
【关键字】知识第一章C语言基础知识一、选择题1.C语言规定,必须用作为主函数名。
A)Function B)include C)main D)stdio2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。
A)过程B) 主函数C)函数D)include 3.是C程序的基本构成单位。
A)函数B) 函数和过程C) 超文本过程D) 子程序4.下列说法正确的是。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。
A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的6.下列说法正确的是。
A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在C语言中,每个语句和数据定义是用结束。
A)句号B)逗号C)分号D)括号8.下列字符串是标识符的是。
A)_HJ B)9_student C)long D)LINE 19.以下说法正确的是。
A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分10.不是C语言提供的合法关键字。
A)switch B)print C)case D)default11.C语言提供的合法关键字是。
A)breack B)print C)funiton D)end12.C语言提供的合法关键字是。
c语言复习题
A. 6 B. 7 C. 11 D. 12
(10) 合法的数组定义是( )。 A
A. char a[ ]= "string " ; B. int a[5] ={0,1,2,3,4,5}; C. char a= "string " ; D. char a[ ]={0,1,2,3,4,5}
A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n];
(4) 对字符数组进行初始化,( )形式是错误。 B
A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123";
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为 1 、 0 、 1 、 1 。
(8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。 A
A. 6 B. 7 C. 11 D. 12
(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。 D
(完整版)C语言各章节复习题(带答案)
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
c语言复习题一
c语⾔复习题⼀复习题⼀⼀、选择题1.以下程序的输出结果是( B )。
#include “stdio.h ”main( ){ printf(“%d\n ”,‘A ’);}A.不确定值B.65C. 97D.A2. 以下程序的输出结果是( C )main( ){ char c1=‘7’,c2=‘0’;printf(“%c,%c,%d\n ”,c1,c2,c1-c2);}A.输出出错信息B.7,0,5C.7,0,7D.6,0,73. 以下变量说明正确的是( C )A.Int a,b;B.int x,float y;C. int a,x;D.int a,x4.若int a, b; scanf("%d%d", &a, &b); 不可以⽤( A )作为输⼊的分隔符。
A.,B. 空格C. 回车D. TAB 键5.设x=2.5, a=7, y=4.7 则表达式x+a%3*(int)(x+y)%2/4的值为( B )A. 0B. 2.5C.不确定D.36. 以下变量x.、y 、z 均为double 类型且已正确赋值,不能正确表⽰数学式⼦zy *x 的C 语⾔表达式是( A ) A. x/y*z B. x*(1/(y*z)) C. x/y*1/z D. x/y/z7. 下⾯(A )是正确的变量名。
A. xyB. 2xyC. x+yD.for8. 设有变量说明:int x=5,y=3;那么表达式y=x>y?(x=1):(y=-1);运算后,x 和y 的值分别是( B )相当与if 语句,问号前⾯成⽴是则执⾏冒号前不成⽴是执⾏冒号后A. 1和-1B. 1和1C. 5和1D. 1和39.以下合法的数组定义是( D )A.int a[]=“string ”;B.int a[5]={0,1,2,3,4,5};C.char a=“string”;D.int a[]={0,1,2,3,4,5};10.设有如下定义char s1[30]=“12345”;printf(“%d\n”,strlen(s1)记数函数直到出现\0是停⽌记数;则输出结果是( B )A.4B. 5C. 9D. 1011.以下程序段中内循环体总的执⾏次数是( A )for(i=5;i>=1;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.3012.语句b=3+a--;表达式的功能,可以由下⾯的(C)的两个语句来实现。
C语言 复习题
山东理工大学成人高等教育 C语言复习题一、判断正误( )1.main函数必须位于整个C语言程序的开头.()2.在C语言程序中不能使用二进制整数。
()3.’\101’和'\n’都代表单个字符。
()4.C语言程序中的变量必须先定义后使用。
( ) 5.a=3是一个赋值表达式。
( ) 6.一个函数可以有多个返回值。
() 7.一个数组名实际上是代表一个地址.( )8.C语言中不区分字母的大小写。
()9.'a’和'\n’都是字符型常量.( )10.5%3的结果是2。
( )11.在C语言中表示逻辑运算结果时,以1表示真,以0表示假。
()12.计算字符串长度时,'\0’不包括在内.( )13.在一条if-else语句中,若if和else之间有多条语句,则必须用花括号括起来。
( )14.一个数组的所有元素具有相同的数据类型。
二、填空1.C语言的标识符只能由字母、和组成。
2.用于从循环体中跳出的语句是语句。
3.一个函数是由和两部分组成的.4.用双引号括起来的若干个字符称为常量。
5.有符号整数在内存中是以二进制码形式存储的。
6.若有int n=3.96;则n的结果为.7.若有int a=5;则printf(“%d",++a);的结果为。
8.若有char s[10]=”abcd1234";则strlen(s)的结果为。
9.C语言程序的基本组成单位是,C程序的执行总是从函数开始。
10.表达式10!=9的值是;若a=3,b=5,则表达式a&&!b的值是11.若x=10,y=5,则x>y?2:3的结果为。
12.已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c=’A'+3;后,c 中的值为_______;若有说明语句:char c=’\172';则变量c包含个字符。
13.若有说明:int i,j=7,*p=&i;,执行i=j;语句后*p的值为 .三、写出下列程序的运行结果1.main() 运行结果为:{int f[6]={1,2,3,4,5,6},i;for(i=5;i〉=0;i-—)printf(”%d\n”,f[i]);}2.main()运行结果为:{int f[5],i;for(i=0;i〈=4;i++){f[i]=i*i;printf("%d\n”,f[i]);}}3.下面程序的输出结果是#include <stdio。
c语言基础习题、复习题(含答案)
c语言基础习题、复习题(含答案)《C语言设计》复习题一选择题1、以下说法中正确的是(C )。
C语言程序总是从main()函数开始执行2、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是___C___.C. 2.03、以下叙述正确的是(D )。
D. 用do…while语句构成循环时,在while后的表达式为零时结束循环4、C程序是( B)B. 从Main函数开始5、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为__C____。
C. 326、设int b=2;表达式b/(b*2)的值是___A_____.A. 07、表示关系X<=Y<=Z的C语言表达式为__A___.A. (X < =Y)&&(Y < =Z)8、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是BB. x=20,y=30,z=309、设A=3,B=4,执行printf("%d,%d",(A,B),(B,A));的输出是___B___.B. 4,310、下面判断正确的是CC. char *s="china";等价于char *s;s="china";11、若有说明:int a[10];,则对a数组元素的正确引用是(D )。
D. a[10-10]12、在C语言中,int、char和short三种类型数据在内存中所占用的字节数DD. 由所用机器的机器字长决定13、C语言规定,函数返回值的类型是由DD. 在定义该函数时所指定的函数类型所决定14、与y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是AA. if(x > 0) y=1; else if(x < 0) y=-1; else y=015、执行语句:for(i=1;i++ < 4;)后;变量i的值是(C )C. 516、语句while(!E);中的表达式!E等价于_____A__A. E==017、假定a和b为int型变量,则执行以下语句后b的值为DD. -418、对以下说明语句的正确理解是____B____int a[10]={6,7,8,9,10};B. 将5个初值依次赋给a[0]至a[4]19、以下不能对二维数组a进行正确初始化的语句是CC. int a[2][3]={{1,2},{3,4},{5,6}}; 20、在C语言中,一维数组的定义方式为:类型说明符数组名___D______D. [整型常量]21、下列说法中正确的是_D___。
函数练习题c语言)带答案
函数练习题(C语言)带答案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)long C)int D)double6. 以下关于函数叙述中,错误的是【】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。
A)参数的形实结合 B)函数返回值 C)全局变量 D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
C语言各章节单元测试题及答案——函数
第5章函数5.1典型考试题剖析5.1.1选择题【例1】下列程序执行后的结果是_______。
#include <stdio.h>f(int a){int b=0;static c=3;a=c++,b++;return(a);}main(){int a=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}A) 3 B) 0 C) 5 D) 4✧考点:变量的作用域。
✧分析:此题函数f中的变量c是一个静态变量。
第一次调用函数时,使用的参数是a,值为2,进入子函数f内,变量b=0,c=3,然后语句“a=c++,b++;”是一个逗号表达式,不是赋值表达式,a被赋的值是c的值,不同逗号表达式的值,所以a=3,此时c的值同时变为4;第二次调用函数,使用的参数是a,值为3,进入子函数内,变量b=0,c=4(这是静态变量的特性)。
✧答案:D【例2】下面程序的输出是_______。
int w=3;fun(int k);main(){int w=10;printf("%d\n",fun(5)*w);}fun(int k){ if (k==0)return(w);return(fun(k-1)*k);}A) 360 B) 3600 C) 1080 D) 1200✧考点:函数的递归调用和全局变量。
✧分析:此题涉及到了函数的递归调用和全局变量的用法,最容易出错的地方是变量w,程序首先定义了全局变量w,并赋了初值为3,然后在主函数中又定义了一个局部变量w,并赋初值为10,在子函数中引用了变量w,一定要认清这个变量是全局变量w的值而不是主函数中局部变量w 的值。
✧答案:B【例3】有以下程序#include <stdio.h>int abc(int u,int v);main(){int a=24,b=16,c;c=abc(a,b);printf("%d\n",c);}int abc(int u,int v){int w;while(v){ w=u%v;u=v;v=w;}return(u);}输出结果为。
《C语言》复习题2—带答案
《C语言》习题2一、单项选择题1、一个C程序的执行是从()A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束2、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是()A.3 B.0 C.-12 D.93、若有char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。
A.cd\0e B.'c''d' C.cd D.cd e4、执行char str[10]=”Ch\nina”; strlen(str)的值是()A.5 B.6 C.7 D.95、组成C程序的基本单位是()A.函数B.标识符C.表达式D.语句6、设int类型的数据长度为2字节,则该类型数据的取值范围是()A.0至65536 B.0至65535C.-32767至32768 D.-32768至327677、在C语言中,逻辑值“真”是用()表示的。
A.预定义为真值的宏B.非零数C.正数D.非零整数8、C语言对于嵌套if语句规定else总是与()匹配。
A.与最外层的if B.与之前最近的ifC.与之前最近的不带else的if D.与最近的{ }之前的if9、数组定义char a[10]={'`a`,`b`,`c`}:包括了几个元素()A.3 B.9 C.4 D.1010、若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为()A.12 34 B.12,34 C.1234 D.12:3411、以下程序的输出结果是()#include<stdio.h>void main(){char s[]="159",*p; p=s;printf("%c",*p++); printf("%c",*p++);}A. 15B. 16C. 12D. 5912、以下程序的输出结果是()。
C语言编程(函数)100道题
C语言编程(函数)100道题C10027 1、编写函数fun, 函数的功能是:根据以下公式计算 s,计算结果作为函数值返回;n 通过形参传入。
S = 1 + 1/ (1+2) + 1/ (1+2+3) + …… + 1/ (1+2+3+……+n) float fun ( int n ){ int i ;float s = 0.0 , t = 0.0 ;for ( i = 1 ; i <= n ; i++ ) { t += i ; s += 1 / t ; }return s ;}2、编写函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。
m 与 n 为两个正整数且要求 m > n。
m!P = ?????n!(m-n)!float fun ( int m , int n ){ int i ;float p , t ;for ( t = 1.0 , i = 1 ; i <= m ; i++ ) t *= i ;p = t ;for ( t = 1.0 , i = 1 ; i <= n ; i++ ) t *= i ;p = p / t ;for ( t = 1.0 , i = 1 ; i <= m – n ; i++ ) t *= i ;p = p / t ;return p ;}3、请编写一个函数fun, 它的功能是:根据以下公式求л 的值,(要求满足精度 0.0005,即某项小于 0.0005 时停止迭代):π 1 1×2 1×2×3 1×2×3×4 1×2×…×n? = 1 + ? + ?? + ???? + ????? + …… + ????????2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1) double fun ( double eps ){ int n = 0 ;double t = 1.0 , pi = 0.0 ;while ( t >= eps ){ pi += t ; n++ ; t *= ( double ) n / (2 * n + 1) ; }return pi * 2 ;}4、请编写函数fun, 其功能是:计算并输出下列多项式值:1 1 1 1s = 1 + ?? + ?? + ?? + …… + ??1! 2! 3! n!1double fun ( int n ){ int i ;double t = 1.0 , sn = 1.0 ;for ( i = 1 ; i <= n ; i++ ){ t *= i ; sn += 1 / t ; }return sn ;}5、请编写函数fun,它的功能是:计算并输出下列级数和:1 1 1s = ??? + ??? + …… + ?????1×2 2×3 n×(n+1) double fun ( int n ){ int i ;double s = 0.0 ;for ( i = 1 ; i <= n ; i++ ) s += 1.0 / i / ( i + 1 ) ;return s ;}6、请编写函数fun, 其功能是:计算并输出当 x < 0.97 时下列多项式的值,直到?Sn-(Sn-1)?< 0.000001 为止。
c语言函数习题
B)第一个函数前 ) D)函数中静态变量 )
15.下面程序的运行结果为: .下面程序的运行结果为: void fun(int a,int b,int c) { a=456;b=567;c=678; } main() { int x=10,y=20,z=30; fun (x,y,z); printf("%d,%d,%d\n",z,y,x); }
5
22、下面程序的运行结果为: 、下面程序的运行结果为: main( ) { int w=5; 012345 fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }
23、下面程序能够统计主函数调用 、下面程序能够统计主函数调用count 函数的次数(用 函数的次数(
int next(j) 1 1 1 10 12 int j ; 1 2 2 9 13 { 1 3 3 8 14 return(j=i++); } int last(j) int j; { static int i=10; return(j=i--); } int new(i) int i; { int j=10; return(i=j+=i); }
20.下面程序的运行结果为: 下面程序的运行结果为: 下面程序的运行结果为 #include <stdio.h> int k=1; main() { int i=4; fun(i); printf("%d,%d\n",i,k);} fun(m) int m; { m+=k; k+=m; { char k='B'; printf("%d\n",k-'A'); } printf("%d,%d\n",m,k);}
C语言复习常见题目复习
直到f2大于1000为止
上机练习:请用while循环编写此程序。
F=1597
四、一维数组、字符
用冒泡法对8个数排序(从小到大)。
分析:将相邻两个数进行比较,将大数调换到后面,经过一 轮操作将最大数放在最后; 7次, j=0; j<7-i; a[j]>a[j+1] ? <-> 再对前n-1个数进行相同的比较交换操作,将次大数 放在倒数第二的位置; 7次, i=0; i<7; …大数不断下沉,小数不断上冒…直至所有数都按从 小到大排列。 3 4 7 0 2 8 7 1 a[0] a[7]
C语言复习常见题目复习
讲课教师:原子章 2012-3-11
第一章C语言程序设计基础
预编译命令 源程序文件1
┇ C程序 源程序文件j ┇ 源程序文件m 外部数据说明 函数1 ┇ 函数i ┇ 语句序列 内部数据定义
函数n
C语言程序结构
第一章C语言程序设计基础
• • • • • • • 1、以下选项中,合法的一组C语言用户标识符是( A )。 [A] and [B] Date [C] Hi [D] case _2007 y-m-d Dr.Tom Big1 2. 以下符合C语言语法的赋值表达式是( B )。 [A]d=9+e+f=d+9 [B]d=9+e,f=d+9 [C]d=9+e+=d+9 [D]d=9+e++=d+9 3.以下选项中,合法的一组C语言数值常量是( B )。 [A] 028 [B] 12. [C] .177 [D] 0x8A • .5e-3 0xa23 4e1.5 10,000 • -0xf 4.5e0 0abc 3.e5
c语言复习试题及答案
c语言复习试题及答案C语言复习试题及答案一、选择题1. C语言中,一个整型变量的取值范围是:A. -128 到 127B. -32768 到 32767C. -2147483648 到 2147483647D. 取决于编译器答案:D2. 下列哪个关键字用于定义C语言的结构体?A. structB. defineC. unionD. enum答案:A3. C语言中,字符串在内存中是以什么方式存储的?A. 字符串名B. 字符串长度C. 字符串本身D. 字符串结束标志 '\0'答案:D4. 在C语言中,函数返回值的类型由什么决定?A. return 语句B. 函数名C. 函数定义时指定的类型D. 函数参数的类型答案:C5. 下列哪个操作符不能用于位操作?A. &B. |C. ^D. ++答案:D二、填空题6. C语言中,预处理器指令 `#include` 的作用是_______。
答案:引入其他文件7. `int main()` 函数中的 `void` 表示该函数_______。
答案:不返回任何值8. 在C语言中,数组的索引是从_______开始的。
答案:09. `printf` 函数的返回类型是_______。
答案:int10. 表达式 `3.0 / 0` 在C语言中会导致_______。
答案:运行时错误三、简答题11. 请简述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
指针在C语言中用于直接访问内存、动态内存分配、数组操作、函数参数传递等。
12. 解释C语言中数组和指针之间的关系。
答案:在C语言中,数组名可以作为指针使用,它指向数组的第一个元素的地址。
通过指针可以遍历数组,也可以通过指针修改数组元素的值。
四、编程题13. 编写一个C语言程序,实现对整数数组的排序。
```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp, min_idx;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("Sorted array: \n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```14. 编写一个C语言程序,实现字符串的反转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言复习题_函数
一、选择
1、当调用函数时,实参是一个数组名,则向函数传递的是C。
A) 数组的长度B) 数组每一个元素的地址
C) 数组的首地址D) 数组每个元素中的值
2、以下函数定义形式正确的是D。
A) double myfun(int x,int y)
{ z=x+y;
return z;}
B) myfun(int x,y)
{ int z;
return z;}
C) myfun(x,y)
{ int x,y;
double z;
z=x+y;
return z;}
D) double myfun(int x,int y)
{ double z;
z=x+y;
return z;}
3、下列关于参数的说法正确的是B。
A) 实参和与其对应的形参共占用一个存储单元;
B) 实参和与其对应的形参各占用独立的存储单元;
C) 形参是虚拟的,不占用存储单元;
D) 只有当实参与其对应的形参同名时才共占用存储单元。
4、一个完整的C源程序是B。
A) 要由一个主函数或一个以上的非主函数构成
B) 由一个且仅由一个主函数和零个以上的非主函数构成
C) 要由一个主函数和一个以上的非主函数构成
D) 由一个且只有一个主函数或多个非主函数构成
5、以下关于函数的叙述中正确的是C。
A) C语言程序将从源程序中第一个函数开始执行
B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C) C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D) main可作为用户标识符,用以定义任意一个函数
6、以下关于函数的叙述中不正确的是B。
A) C程序是函数的集合,包括标准库函数和用户自定义函数
B) 在C语言程序中,被调用的函数必须在main函数中定义
C) 在C语言程序中,函数的定义不能嵌套
D) 在C语言程序中,函数的调用可以嵌套
7、在一个C程序中,B。
A) main函数必须出现在所有函数之前
B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后
D) main函数必须出现在固定位置
8、若在C语言中未说明函数的类型,则系统默认该函数的数据类型是C。
A) float B) long
C) int D) double
9、以下关于函数叙述中,错误的是D。
A) 函数未被调用时,系统将不为形参分配内存单元
B) 实参与形参的个数应相等,且实参与形参的类型必须对应一致
C) 当形参是变量时,实参可以是常量、变量或表达式
D) 形参可以是常量、变量或表达式
10、若函数调用时参数为基本数据类型的变量,以下叙述正确的是C。
A) 实参与其对应的形参共占存储单元
B) 只有当实参与其对应的形参同名时才共占存储单元
C) 实参与对应的形参分别占用不同的存储单元
D) 实参将数据传递给形参后,立即释放原先占用的存储单元
11、函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是D。
A) 实参将其地址传递给形参,并释放原先占用的存储单元
B) 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C) 实参将其值传递给形参,调用结束时形参再将其值回传给实参
D) 实参将其值传递给形参,调用结束时形参并不将其值回传给实参
12、若程序中定义函数
float myadd(float a, float b)
{ return a+b;}
并将其放在调用语句之后,则在调用之前应对该函数进行说明。
以下说明中错误的是A。
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);
13、以下程序运行后的输出结果是D。
fun(int a, int b)
{
if(a>b) return a;
else return 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) 3 B) 6 C) 8 D) 12
14、以下程序的运行结果是C。
void f(int a, int b)
{
int t;
t=a; a=b; b=t;
}
int 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);
return 0;
}
A) 1,2,3 B) 3,1,2C) 1,3,2 D) 2,3,1
二、判断
1、C程序从源文件中的第一个函数开始运行, 到最后一个函数结束。
F
2、C语言的函数调用时,形参是不需要分配存储单元的。
F
3、函数中的形参变量在被定义后即被分配了一定的内存单元。
F
三、程序填空
1、在C语言中,一个函数一般由两个部分组成,分别是函数首部和函数体。
2、以下程序的功能是计算函数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= x/y;
return value;
}
int main()
{
float x,y,z,sum;
scanf("%f%f%f",&x,&y,&z);
sum=f(x+z,y-z)+f(y+2*z,x-2*z);
printf("sum=%f\n",sum);
return 0;
}
3、以下程序是选出能被3整除且至少有一位是5的所有三位正整数k(个位为a0,十位为
a1,百位为a2),打印出所有这样的数及其个数。
请将程序补充完整。
#include<stdio.h>
sub(int m,int n)
{
int a0,a1,a2;
a2= m/100;
a1= m/10-a2*10;
a0=m%10;
if(m%3==0 && (a2==5||a1==5||a0==5))
{
printf(“%d”,m);
n++;
}
return n;
}
int main()
{
int m=0,k;
for(k=105;k<=995;k++)
m=sub(k,m);
printf("\nn=%d\n",m);
return 0;
}
四、写出程序运行结果
2
答:
2
3
2
5
}
运行结果为:
答:31
五、程序设计
1、写一个判素数的函数,在主函数中输入一个整数,输出是否为素数的信息。
参考代码:
2、数学函数 ...
)!12(...!7!5!3)(1
2753+-+++++=-n x x x x x x f n , -∞ < x < +∞
编写函数: double F(double x); 要求精度达到
10-6。
3、写一个计算x 的n 次方的函数,在主函数中输入一个实数x ,一个整数n 代表次数,输出x 的n 次方的结果。