《大学C语言期末考试练习题(带详解答案)(1)讲述ppt课件.ppt》由会员分享,可在线阅读,更多相关《大学C语言期末考试练习题(带详解答案)(1)讲述ppt课件.ppt(121页珍藏版)》请在三一办公上搜索。
1、 单项选择题,一个完整的可运行的C源程序中 .A)可以有一个或多个主函数B)必须有且仅有一个主函数C)可以没有主函数D)必须有主函数和其他函数构成C语言源程序的基本单位是 . A)子程序 B)过程 C)文本 D)函数,B,D,返回目录,C语言程序设计 概述, 单项选择题,某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序 .A)总是从max( )函数开始执行 B)写在前面的函数先开始执行 C)写在后面的函数先开始执行 D)总是从main( )函数开始执行 C语言规定,一个C源程序的主函数名必须为 . A)program B)include C)main D)funct
2、ion,D,C,C语言程序设计 概述,返回目录, 单项选择题,下列说法正确的是 .A)在书写C语言源程序时,每个语句以逗号结束B)注释时,/和*号间可以有空格C)无论注释内容的多少,在对程序编译时都被忽略D)C程序每行只能写一个语句C语言源程序文件的后缀是 ,经过Compile后,生成文件的后缀是,经过Link后,生成文件的后缀是. A).obj B).exe C).c D).doc,C,C,A,B,C语言程序设计 概述,返回目录, 单项选择题,Visual C+ 6.0 IDE的编辑窗口的主要功能是.输出窗口的主要功能是.调试器(Debug)的主要功能是.A)建立并修改程序 B)将C源程序编
3、译成目标程序 C)跟踪分析程序的执行D)显示编译结果信息(如语法错误等),A,D,C,C语言程序设计 概述,返回目录, 单项选择题,在Visual C+ 6.0开发环境下,C程序按工程(project)进行组织,每个工程可包括 C/CPP源文件,但只能有 main函数。A)1个B)2个C)3个D)1个以上(含1个),D,A,C语言程序设计 概述,返回目录, 单项选择题,调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为. 而某个“计算2的平方”的程序在调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为. A)语法错误B)正常情况C)编译
4、器出错D)逻辑设计错误,A,D,C语言程序设计 概述,返回目录,C语言程序设计 基本数据类型与运算符, 单项选择题,C语言中最基本的非空数据类型包括 . A)整型、浮点型、无值型 B)整型、字符型、无值型 C)整型、浮点型、字符型 D)整型、浮点型、双精度型、字符型C语言中运算对象必须是整型的运算符是 . A)% B)/ C)= D)=,D,A,返回目录,C语言程序设计 基本数据类型与运算符, 单项选择题,若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是 .A)1 B)2 C)2.0 D)2.5 若有以下程序段,int a=1,b=2,c; c=1.0/b*a; 则执
5、行后,c中的值是 . A)0 B)0.5 C)1 D)2 5) 能正确表示逻辑关系:“a10或a0”的C语言表达式是_. A)a=10 or a=0|a=10 & a=10a=0,B,A,D,返回目录,C语言程序设计 基本数据类型与运算符, 单项选择题,下列字符序列中,不可用作C语言标识符的是 .A)xyd233 B)No.1 C)_sd D)xyz 在printf( )函数中,反斜杠字符表示为 . A) B)0 C)n D) 8) 设先有定义:int a=10;则表达式a+=a *=a的值为_. A)10 B)100 C)1000 D)2009) 设先有定义:int a=10;则表达式(+a
6、)+(a- -)的值为_. A)20 B)21 C)22 D)19,B,D,D,C,返回目录,C语言程序设计 基本数据类型与运算符, 单项选择题,10) 设先有定义:int y=3,x=3,z=1;则语句: printf(“%d %dn”,(+x,y+),z+2); 的输出结果为_. A)3 4 B)4 2 C)4 3 D)3 311)假定x、y、z、m均为int型变量,有如下程序段: x=2; y=3; z=1; m=(yx)?y: x; m=(zy)?m:y; 则该程序运行后,m的值是 _. A)4 B)3 C)2 D)1,D,C,返回目录,C语言程序设计 基本数据类型与运算符, 单项选择
7、题,以下选项中合法的字符常量是 . A)BB)010C)68D)D设x=3,y=4,z=5,则表达式(x+y)z) 则m+=n;的结果是_. A)0 B)1 C)2 D)3,B,B,A,A,返回目录,C语言程序设计 基本数据类型与运算符, 填空题,1表达式10/3的结果是_;10%3的结果是_。2执行语句:int a=12;a+=a-=a*a;后的值是_。3以下语句的输出结果是_。 short b=65535; printf(%d,b);,3,1,-264,-1,返回目录,C语言程序设计 基本数据类型与运算符, 填空题,4以下程序的执行结果是_。#includemain( )int a,b,x
8、;x=(a=3,b=a- -);printf(x=%d,a=%d,b=%dn,x,a,b);,x=3,a=2,b=3,返回目录,C语言程序设计 基本数据类型与运算符, 填空题,5以下程序的执行结果是_。#includemain( )float f1,f2,f3,f4;int m1,m2;f1=f2=f3=f4=2;m1=m2=1;printf(%dn,(m1=f1=f2),0,返回目录,C语言程序设计 基本数据类型与运算符,6以下程序的执行结果是_。#includemain()float f=13.8;int n;n=(int)f%3;printf(n=%dn,n);, 填空题,n=1,返回目
9、录,C语言程序设计 控制结构, 单项选择题,结构化程序模块不具有的特征是.A)只有一个入口和一个出口 B)要尽量多使用goto语句 C)一般有顺序、选择和循环三种基本结构 D)程序中不能有死循环 C语言中,逻辑“真”等价于.A)整数1 B)整数0 C)非0数D)TRUE3)以下4条语句中,有语法错误的是.A)if(ab) m=a; B)if(a=0) m=a; D)if(a=b;)=0) m=a;,B,C,D,返回目录,C语言程序设计 控制结构, 单项选择题,4)若i, j均为整型变量,则以下循环. for(i=0,j=2; j=1; i+,j-)printf(%5d, %dn, i, j);
10、 A)循环体只执行一次B)循环体执行二次 C)是无限循环D)循环条件不合法5)以下程序段,执行结果为. a=1;do a=a*a; while(!a); A)循环体只执行一次B)循环体执行二次 C)是无限循环D)循环条件不合法,C,A,返回目录,C语言程序设计 控制结构, 单项选择题,6)C语言中while与dowhile语句的主要区别是. A)dowhile的循环体至少无条件执行一次 B)dowhile允许从外部跳到循环体内 C)while的循环体至少无条件执行一次 D)while的循环控制条件比dowhile的严格7)语句while (!a);中条件等价于. A)a!=0 B)a C)a=
11、1 D)a=0,A,D,返回目录,C语言程序设计 控制结构, 单项选择题,8)以下程序的运行结果为.#include main( )int i=1,sum=0;while(i=100)sum+=i;i+;printf(1+2+3+.+99+100=%d, sum);A)5050B)1 C)0D)程序陷入死循环,D,返回目录,C语言程序设计 控制结构, 单项选择题,9)以下程序的运行结果为. #include main( )int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn, pad);A)7 B)6 C)5 D)4,A,返回目录,C语言程序设
12、, 单项选择题,10)以下程序的运行结果为. #include main( )int a=2,b=10;printf(a=%d,b=%dn, a,b);A)a=%2,b=%10B)a=2,b=10 C)a=%d,b=%dD)a=%d,b=%d,D,返回目录,C语言程序设计, 单项选择题,11)为了避免嵌套的if-else语句的二义性,C语言规定else总是. A)与缩排位置相同的if组成配对关系B)与在其之前未配对的if组成配对关系C)与在其之前未配对的最近的if组成配对关系D)与同一行上的if组成配对关系12)对于for(表达式1; ;表达式3)可理解为. A)for(表达式1; 0 ;表达
13、式3)B)for(表达式1; 1 ;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3),C,B,返回目录,C语言程序设计, 程序填空题,1下面程序的功能是计算n!。#include main( )int i, n;long p;printf ( Please input a number:n );scanf (%d, ,1,=p*i;或p*=i;,返回目录,C语言程序设计, 程序填空题,2下面程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。#include main ( ) float score, max,
14、 min; printf ( Please input one score:n ); scanf (%d, ,score=0,scoremin,返回目录,C语言程序设计, 程序填空题,3下面程序的功能是:计算y= 的值。要求从键盘上输入x的值,精度控制在0.00001内。#include #include main ( ) float x , y=0, fz=-1, fm=1, temp=1; printf ( Please input the value of x:n ); scanf (%f, ,fabs(temp)0.00001,-fz*x,返回目录,C语言程序设计, 程序填空题,4下面
15、的程序完成两个数的四则运算。用户输入一个实现两个数的四则运算的表达式,程序采用switch语句对其运算进行判定后执行相应的运算并给出结果。#include main( )float x,y;char op;printf(Please input Expression:);scanf(%f%c%f,switch(op),x,op,y,x+y,break,返回目录,C语言程序设计, 程序填空题,case -:printf(%g%c%g=%gn,x,op,y,x-y);break;case *:printf(%g%c%g=%gn,x,op,y,x*y);break;case /:if (_)prin
16、tf(Division Error!n);elseprintf(%g%c%g=%gn,x,op,y,x/y);break;default:printf(Expression Error!n);,(y=-1e-6) & (y=1e-6),返回目录,C语言程序设计, 程序填空题,3.6习题三, 程序填空题,case -:printf(%g%c%g=%gn,x,op,y,x-y);break;case *:printf(%g%c%g=%gn,x,op,y,x*y);break;case /:if (_)printf(Division Error!n);elseprintf(%g%c%g=%gn,x,
17、op,y,x/y);break;default:printf(Expression Error!n);,(y=-1e-6) & (y=1e-6),此处填y=0.0 不妥原因:无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“=”或“!=”与数字比较,应该设法转化成“=”或“=-EPSINON) & (y=EPSINON)其中EPSINON是允许的误差(即精度)。,返回目录,C语言程序设计,编程题,1给出三角形的三边a、b、c,求三角形的面积。(应先判断a、b、c三边是否能构成一个三角形)。,#include #include main( ) float a,
18、b,c,area,p;scanf(%f,%f,%f,返回目录,C语言程序设计, 编程题,2输入四个整数,要求将它们按由小到大的顺序输出。,#include main( ) int a,b,c,d,t;scanf(%d,%d,%d,%d, ,返回目录,C语言程序设计, 编程题,3某幼儿园只收2至6岁的小孩,23岁编入小班,4岁编入中班,56岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班。,#include main( ) int age; scanf(%d, ,返回目录,C语言程序设计, 编程题,4输入一元二次方程的三个系数a、b、c,求出该方程所有可能的根。,#include #in
19、clude main( ) float a,b,c,d,x1,x2; scanf(%f,%f,%f,返回目录,C语言程序设计, 编程题,else if(d1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(The equations root is ); printf(x1=%f,x2=%fn ,x1,x2); else x1=-b/(2*a); x2=sqrt(-d)/(2*a); printf(The equations root is %f+Ifn ,x1,x2); printf(The equations root is %
20、f-I%fn ,x1,x2); ,4输入一元二次方程的三个系数a、b、c,求出该方程所有可能的根。,返回目录,C语言程序设计, 编程题,5编程求s=1-1/2+1/3-1/4+ -1/100。,#include main( )int n,flag=1; float s=0; for(n=1; n=100; n+)s=s+1.0*flag/n; flag=-flag; printf(fn,s); ,返回目录,C语言程序设计, 编程题,6编程求1!+2!+3!+10!之和。,#include main( )long int s=0,p=1; int n; for(n=1; n=10; n+)p=p
21、*n; s=s+p; printf(%ldn,s); ,返回目录,C语言程序设计, 编程题,7一张10元票面的纸钞兑换成1元、2元或5元的票面,问共有多少种不同的兑换方法?,#include main( ) int a,b,c,sum=0; for(a=0; a=10; a+)for(b=0; b=5; b+)for(c=0; c=2; c+)if(a+2*b+5*c=10) printf(%d,%d,%dn,a,b,c); sum+; printf(%dn,sum); ,返回目录,C语言程序设计, 编程题,8编程打印出所有的“水仙花数”。所谓水仙花数:是指一个三位数,其各位数字的立方之和等于
22、该数。,#include main( ) int n,a,b,c; for(n=100; n1000; n+) a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c=n)printf(水仙花数有:%5dn,n); ,返回目录,C语言程序设, 编程题,9如果一个数等于其所有真因子(不包括其本身)之和,则该数为完数,例如6的因子有1、2、3,且6=1+2+3,故6为完数,求21000中的完数。,#include main( ) int s,n,k; for(n=2; n=1000; n+) s=0; for(k=1; kn; k+)if(n%k=0) s
23、=s+k; if(s=n)printf(%5d,n); printf(n); ,返回目录,C语言程序设计, 编程题,10输出71000中个数位为7的所有素数,统计其个数并求出它们的和。,#include main( ) int n,count=0,total=0,m,temp,y;for(n=7; n1000; n+) for(m=2; mn; m+)if(n%m=0) break;if(n=m) temp=n%10;if(temp=7) printf(%6d,n);if (count%5=4) printf(n);count+;total= total +n;printf(ncount=%d
24、, total =%dn,count, total);,返回目录,C语言程序设计 控制结构, 编程题,11一个自然数平方的末几位与该数相同时,称该数为同构数。例如252=625,则25为同构数。编程求出11000中所有的同构数。,#include main( )int x;for(x=1; x=1000; x+)if(x*x%10=x|x*x%100=x|x*x%1000=x)printf(%5d,x); printf(n); ,返回目录,C语言程序设计 数组,单项选择题,1在下列数组定义、初始化或赋值语句中,正确的是.A)int a8; a8=100; B)int x5=1,2,3,4,5,
25、6;C)int x =1,2,3,4,5,6; D)int n=8; int scoren;2若已有定义:int i, a100; 则下列语句中,不正确的是.A)for ( i=0; i100; i+ ) ai=i; B)for ( i=0; i100; i+ ) scanf ( %d, ,C,C,返回目录,C语言程序设计 数组,单项选择题,3与定义char c =GOOD; 不等价的是.A)char c =G,O,O,D,0;B)char c =GOOD;C)char c4=GOOD;D)char c5=G,O,O,D,0;4若已有定义:char c8=GOOD; 则下列语句中,不正确的是.
26、A)puts (c);B)for(i=0;ci!=0;i+) printf(%c, ci);C)printf (%s, c);D)for(i=0;ci!=0;i+) putchar( c );,C,D,返回目录,C语言程序设 数组,单项选择题,5若定义a 3=0,1,2,3,4,5,6,7; 则a数组中行的大小是.A) 2B) 3C) 4D) 无确定值6以下程序的运行结果是.#include void f ( int b )int i=0;while(bi=10)bi+=2;i+;A) 2 7 12 11 13 9 B) 1 7 12 11 13 7C) 1 7 12 11 13 9 D) 1
27、 7 12 9 13 7,B,B,main( )int i, a = 1, 5,10, 9,13, 7;f(a+1);for(i=0; i6; i+)printf(%4d , ai);,返回目录,C语言程序设计 数组,单项选择题,7若执行以下程序段,其运行结果是.char c =a, b, 0, c, 0;printf ( %sn, c );A) ab cB) abC) abcD) ab8数组名作为参数传递给函数,作为实际参数的数组名被处理为.A)该数组长度 B)该数组元素个数C)该函数中各元素的值D)该数组的首地址11当接受用户输入的含空格的字符串时,应使用函数.A)scanf( ) B)g
28、ets( ) C) getchar( ) D)getc( ),D,D,B,返回目录,C语言程序设计 数组,单项选择题,9执行下面的程序段后,变量k中的值为.int k=3, s2=1; s0=k; k=s1*10;A)不定值B) 33C) 30 D) 010在定义int a54;之后;对a的引用正确的是.A)a24B) a50 C)a00D)a0,0,D,C,返回目录,C语言程序设计 数组,程序填空题,1以下程序用来检查二维数组是否对称(即:对所有i,j都有aij=aji)。#include main ( )int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8,6,7,4;
29、int i, j, found=0;for ( j=0; j4; j+ )for (i=0; i4; i+ )if ( _ )found= _ ;break; if (found) break;if (found) printf (不对称n);else printf(对称n);,aij!=aji,1,返回目录,C语言程序设计 数组,程序填空题,2以下程序是用来输入5个整数,并存放在数组中,找出最大数与最小数所在的下标位置,并把两者对调,然后输出调整后的5个数。#include main( )int a5, t, i, maxi, mini;for ( i=0; iamaxi ) _【5】_ ;
30、printf ( 最小数的位置是:%3dn, mini );printf ( 最大数的位置是:%3dn, maxi );t=amaxi; _【6】_ ;amini=t;printf ( 调整后的数为: );for ( i=0; i5; i+ )printf ( %d , ai );printf (n);,0,amini ai,maxi=i,amaxi=amini,返回目录,C语言程序设计 数组,程序填空题,3给定一3 x 4的矩阵,求出其中的最大元素值,及其所在的行列号:main( )int i,j,row=0,colum=0,max;static int a34=1,2,3,4,9,8,7,
31、6,10,-10,-4,4;_【7】_;for(i=0;i=2;i+)for(j=0;j=3;j+) _【8】_;_【9】_;printf(%d%d,row,colum);,max=a00,if(aijmax),max=aij;row=i;colum=j;,返回目录,C语言程序设计 数组,程序填空题,4下述函数用于确定给定字符串的长度,请完成程序。strlen ( char s )int i=0;while (_【10】_ ) +i;return (_【11】_ );,si!=0,i,返回目录,C语言程序设计 数组,程序填空题,5以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一
32、个字符数组,然后输出该字符数组中的字符串,请填空!#includemain ( )char str81;int i;for ( i=0; i80; i+ )stri=getchar( );if (stri=n) break;stri=0;_【12】_;while ( stri!=0 ) putchar(_【13】_);,i=0,stri+,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,1写出下列程序的运行结果并分析之:#include main( )static int a45=1,2,3,4,0,2,2,0,0,0,3,4,5,0,0,6,0,0,0,0;int j,k;for (
33、j=0;j4;j+)for(k=0;k5;k+)if (ajk=0) break;printf( %d,ajk);printf(n);,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,2写出下列程序的运行结果并分析之:#include main ( )int a66,i,j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+) aij= i*j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+) printf( %-4d ,aij ) ;printf(n);,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,3写出下列程序的运行结果并分析之:#i
34、nclude main ( )int a =1,2,3,4,i,j,s=0;j=1;for ( i=3;i=0;i- )s=s+ai*j;j=j*10;printf(s=%dn,s);,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,4写出下列程序的运行结果并分析之:#include main( )int a=0,2,5,8,12,15,23,35,60,65;int x=15,i,n=10,m;i=n/2+1;m=n/2;while(m!=0)if(xai) i=i+m/2+1; m=m/2; elsebreak;printf(place=%d,i+1);,返回目录,C语言程序设计
35、数组,阅读程序并写出运行结果,5写出下列程序的运行结果并分析之:#include main( )int a=1,2,3,4,i,j,s=0;j=1;for(i=3;i=0;i-)s=s+ai*j;j=j*10;printf(s=%dn,s);,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,6写出下列程序的运行结果并分析之:#include main( )char str=1a2b3c;int i;for(i=0;stri!=0;i+)if(stri=0,返回目录,C语言程序设计 数组,编程题,1编一程序用简单选择排序方法对10个整数排序(从大到小)。排序思路为:首先从n个整数中选出值
36、最大的整数,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值次大的整数,将它交换到第二个元素位置,重复上述操作n次后,排序结束。2编写一程序,实现两个字符串的连接(不用strcat( )函数)。3编写一个把字符串转换成浮点数的函数。4若有说明:int a34 1, 2, 3, 4 , 5, 6, 7, 8 , 9, 10, 11, 12 ;现要将a的行和列的元素互换后存到另一个二维数组b中。试编程。,返回目录,编程题,返回目录,C语言程序设计 函数,单项选择题,C语言中函数形参的缺省存储类型是 .A)静态(static)B)自动(auto)C)寄存器(register) D)外部(ex
37、tern)函数调用语句function(exp1,exp2), 18)中含有的实参个数为.A)0 B)1 C)2D)3,B,C,返回目录,C语言程序设计 函数,单项选择题,下面函数返回值的类型是 .square(float x)return x*x;A)与参数x的类型相同B)是void型C)无法确定 D)是int型C语言规定,程序中各函数之间 .A)不允许直接递归调用,也不允许间接递归调用B)允许直接递归调用,但不允许间接递归调用C)不允许直接递归调用,但允许间接递归调用D)既允许直接递归调用,也允许间接递归调用,D,D,返回目录,C语言程序设函数,单项选择题,一个函数返回值的类型取决于 .
38、A)return语句中表达式的类型 B)调用函数时临时指定 C)定义函数时指定或缺省的函数类型 D)调用该函数的主调函数的类型下面叙述中,错误的是 . A)函数的定义不能嵌套,但函数调用可以嵌套 B)为了提高可读性,编写程序时应该适当使用注释 C)变量定义时若省去了存储类型,系统将默认其为静态变量 D)函数中定义的局部变量的作用域在函数内部,C,C,返回目录,C语言程序设计 函数,单项选择题,7) 在一个源程序文件中定义的全局变量的有效范围为 . A)一个C程序的所有源程序文件 B)该源程序文件的全部范围 C)从定义处开始到该源程序文件结束 D)函数内全部范围某函数在定义时未指明函数返回值类型
39、,且函数中没有return语句,现若调用该函数,则正确的说法是 . A)没有返回值B)返回一个用户所希望的值 C)返回一个系统默认值D)返回一个不确定的值,C,D,返回目录,C语言程序设计 函数,单项选择题,9)函数swap(int x, int y)可实现对x和y值的交换。在执行如下定义及调用语句后,a和b的值分别为 . int a=10, b=20; swap (a,b );A)10和10B)10和20C)20和10D)20和20 下面错误的叙述是 . A)在某源程序不同函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的
40、复合语句中定义的变量在本函数范围内有效,B,D,返回目录,C语言程序设计 函数,程序填空题,1求s=1!+2!+3!+10!之和。程序如下:#include long int factorial(int n)int k=1; long int p=1; for(k=1; k=n; k+)_; return p;,main( )int n;float sum=0;for(n=1;n=10;n+)_;printf(%6.3fn,sum);,p=p*k,sum+=factorial(n),或sum=sum+factorial(n),返回目录,C语言程序设计 函数,程序填空题,2以下函数用以求x的y次
41、方。double fun (double x, int y)int i;double m=1;for ( i=1; i_; i+ )m=_;return m;,=y,或y+1,m*x,返回目录,C语言程序设函数,程序填空题,3下面定义了一个函数pi,其功能是根据以下的近似值公式来求值:,#include #include double pi(long n) double s=_; long k; for(k=1; k=n; k+) s=s+ _; return (_); ,0,1/(k*k),sqrt(6*s),答案不唯一,因为若初值不同,则有不同的答案组合。,返回目录,C语言程序设计 函数,
42、 阅读程序并写出运行结果,1下面程序运行的结果是_:#include #define MAX_COUNT 4void fun( );main( )int n;for(n=1; n=MAX_COUNT; n+)fun( );,void fun( )static int k;k=k+2; printf (%d, k);,2,4,6,8,返回目录,C语言程序设计 函数, 阅读程序并写出运行结果,2下面程序运行的结果是_:#include int fun(int x) int s;if(x=0|x=1)return 3;s=x-fun(x-3);return s;main( )printf (%dn,
43、 fun(3);,0,返回目录,C语言程序设计 函数, 阅读程序并写出运行结果,3下面程序运行的结果是_:#include unsigned int fun(unsigned num)unsigned int k=1;dok=k*num%10;num=num/10;while(num);return k;,main( )unsigned n=25;printf (“%un”, fun(n);,0,返回目录,C语言程序设函数, 阅读程序并写出运行结果,4下面程序运行的结果是_:#include int fun(int x, int y)static int m=0, n=2;n+=m+1;m=n
44、+x+y;return m;,main( )int j=4, m=1, k;k=fun(j, m);printf (%d, k);k=fun(j,m);printf(%dn, k);,8,17,返回目录,C语言程序设计 函数, 阅读程序并写出运行结果,5下面程序运行的结果是_:#include void t(int x, int y, int p, int q)p=x*x+y*y;q=x*x-y*y;main( )int a=4, b=3, c=5, d=6;t(a, b, c, d);printf (%d, %dn, c, d);,5,6,返回目录,C语言程序 函数, 编程题,1编程实现从键
45、盘输入一整数,如果该整数为素数,则返回1,否则返回0。要求单独编写一个求素数的自定义函数。,返回目录,C语言程序设计 函数, 编程题,2试用递归的方法编写一个返回长整型的函数,以计算斐波纳契数列的前20项。该数列满足:F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2) (n2)。,返回目录,C语言程序设计 函数, 编程题,3. 如果一个数等于其所有真因子(不包括其本身)之和,则该数为完数,例如6的因子有1、2、3,且6=1+2+3,故6为完数,求21000中的完数。,返回目录,C语言程序设计 指针,单项选择题,1若已定义int a=8, *p=则数组第2个元素“2”不可表示为A)
46、a1B)p1C)*p+1 D)*(p+1),D,C,C,返回目录,C语言程序设计 指针,单项选择题,4若已定义int a,*p=,其中的p和q分别是 10个指向整型变量的指针 指向具有10个整型变量的函数指针 一个指向具有10个元素的一维数组的指针 具有10个指针元素的一维数组A)、B)、C)、D)、,C,D,返回目录,C语言程序设计 指针,单项选择题,6若已定义int a24= 80, 81, 82, 83 , 84, 85, 86, 87 , (*p)4=a;则执行p+;后,*p代表的元素是 A)80B)81C)84D)857执行语句“char a10=abcd,*p=a;后,(p+4)的
47、值是 A)abcdB)0C)dD)不能确定8设已定义int a32=10,20,30,40,50,60;和语句(*p)2=a;则*(*(p+2)+1)的值为A)60B)30C)50D)不能确定,C,B,A,返回目录,C语言程序设计 指针,单项选择题,9以下程序的运行结果是#include main( )int a43= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12;int *p4, i;for(i=0; i4; i+)pi=ai;printf(%2d,%2d,%2d,%2dn, *p1, (*p)1, p32, *(p3+1);A)4, 4, 9, 8B)程序出错C)4
48、, 2,12,11D)1, 1, 7, 5,C,返回目录,C语言程序设计 指针,单项选择题,10以下各语句或语句组中,正确的操作是A)char s4=abcde;B)char *s; gets(s);C)char *s; s=abcde;D)char s5; scanf(%s, ,C,返回目录,C语言程序设计 指针,单项选择题,11以下程序的运行结果是 #include main ( )char *s=xcbc3abcd;int a, b, c, d;a=b=c=d=0;for ( ; *s ; s+ )switch ( *s )case c: c+;case b: b+;default :
49、d+; break;case a: a+; printf(a=%d,b=%d,c=%d,d=%dn, a, b, c, d);(a=a的个数、b=b,c的个数、c=c的个数、d=非a的个数)A)a=1,b=5,c=3,d=8 B)a=1,b=2,c=3,d=3C)a=9,b=5,c=3,d=8D)a=0,b=2,c=3,d=3,A,返回目录,C语言程序设计 指针,单项选择题,12若有以下程序:#include main ( int argc, char *argv )while ( -argc )printf ( %s, argvargc );printf ( n );该程序经编译和连接后生成
50、可执行文件S.EXE。现在如果在DOS提示符下键入S AA BB CC后回车,则输出结果是:A)AABBCCB)AABBCCSC)CCBBAAD)CCBBAAS,C,返回目录,C语言程序设计 指针,单项选择题,13若有定义char *language =FORTRAN, BASIC, PASCAL, JAVA, C; 则language2的值是:A)一个字符B)一个地址C)一个字符串D)不定值14若有以下定义和语句,则对a数组元素地址的正确引用是:int a23, (*p)3;p=a;A)*(p+2)B)p2C)p1+1D)(p+1)+2,B,C,返回目录,C语言程序设计 指针,单项选择题,1