大学C语言期末考试练习题(带详解答案)(1).ppt_第1页
大学C语言期末考试练习题(带详解答案)(1).ppt_第2页
大学C语言期末考试练习题(带详解答案)(1).ppt_第3页
大学C语言期末考试练习题(带详解答案)(1).ppt_第4页
大学C语言期末考试练习题(带详解答案)(1).ppt_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单项选择题,一个完整的可运行的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)function,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源程序编译成目标程序 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)编译器出错 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; 则执行后,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)200 9) 设先有定义:int a=10;则表达式(+a)+(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 3 11)假定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语言程序设计 基本数据类型与运算符, 单项选择题,以下选项中合法的字符常量是 . A)“B“ B)010 C)68 D)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以下程序的执行结果是_。 #include main( ) int a,b,x; x=(a=3,b=a- -); printf(“x=%d,a=%d,b=%dn“,x,a,b); ,x=3,a=2,b=3,返回目录,C语言程序设计 基本数据类型与运算符, 填空题,5以下程序的执行结果是_。 #include main( ) float f1,f2,f3,f4; int m1,m2; f1=f2=f3=f4=2; m1=m2=1; printf(“%dn“,(m1=f1=f2) ,0,返回目录,C语言程序设计 基本数据类型与运算符,6以下程序的执行结果是_。 #include main() float f=13.8; int n; n=(int)f%3; printf(“n=%dn“,n); , 填空题,n=1,返回目录,C语言程序设计 控制结构, 单项选择题,结构化程序模块不具有的特征是. A)只有一个入口和一个出口 B)要尽量多使用goto语句 C)一般有顺序、选择和循环三种基本结构 D)程序中不能有死循环 C语言中,逻辑“真”等价于. A)整数1 B)整数0 C)非0数 D)TRUE 3)以下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); 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=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)5050 B)1 C)0 D)程序陷入死循环,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语言程序设, 单项选择题,10)以下程序的运行结果为. #include main( ) int a=2,b=10; printf(“a=%d,b=%dn“, a,b); A)a=%2,b=%10 B)a=2,b=10 C)a=%d,b=%d D)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 ;表达式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=p*i;或p*=i;,返回目录,C语言程序设计, 程序填空题,2下面程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。 #include main ( ) float score, max, 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下面的程序完成两个数的四则运算。用户输入一个实现两个数的四则运算的表达式,程序采用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 (_) printf(“Division Error!n“); else printf(“%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“); else printf(“%g%c%g=%gn“,x,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,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 #include 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 %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*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编程打印出所有的“水仙花数”。所谓水仙花数:是指一个三位数,其各位数字的立方之和等于该数。,#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=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, 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,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“; 则下列语句中,不正确的是. 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) 2 B) 3 C) 4 D) 无确定值 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 7 C) 1 7 12 11 13 9 D) 1 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 c B) ab C) abc D) ab 8数组名作为参数传递给函数,作为实际参数的数组名被处理为. A)该数组长度 B)该数组元素个数 C)该函数中各元素的值 D)该数组的首地址 11当接受用户输入的含空格的字符串时,应使用函数. A)scanf( ) B)gets( ) C) getchar( ) D)getc( ),D,D,B,返回目录,C语言程序设计 数组,单项选择题,9执行下面的程序段后,变量k中的值为. int k=3, s2=1; s0=k; k=s1*10; A)不定值 B) 33 C) 30 D) 0 10在定义 int a54; 之后;对a的引用正确的是. A)a24 B) a50 C)a00 D)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; 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】_ ; 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,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以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符数组,然后输出该字符数组中的字符串,请填空! #include main ( ) 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 (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写出下列程序的运行结果并分析之: #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语言程序设计 数组,阅读程序并写出运行结果,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; else break; printf(“place=%d“,i+1); ,返回目录,C语言程序设计 数组,阅读程序并写出运行结果,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个整数中选出值最大的整数,将它交换到第一个元素位置,再从剩余的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)外部(extern) 函数调用语句function(exp1,exp2), 18)中含有的实参个数为. A)0 B)1 C)2 D)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语言程序设函数,单项选择题,一个函数返回值的类型取决于 . A)return语句中表达式的类型 B)调用函数时临时指定 C)定义函数时指定或缺省的函数类型 D)调用该函数的主调函数的类型 下面叙述中,错误的是 . A)函数的定义不能嵌套,但函数调用可以嵌套 B)为了提高可读性,编写程序时应该适当使用注释 C)变量定义时若省去了存储类型,系统将默认其为静态变量 D)函数中定义的局部变量的作用域在函数内部,C,C,返回目录,C语言程序设计 函数,单项选择题,7) 在一个源程序文件中定义的全局变量的有效范围为 . A)一个C程序的所有源程序文件 B)该源程序文件的全部范围 C)从定义处开始到该源程序文件结束 D)函数内全部范围 某函数在定义时未指明函数返回值类型,且函数中没有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和10 B)10和20 C)20和10 D)20和20 下面错误的叙述是 . A)在某源程序不同函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效,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次方。 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语言程序设计 函数, 阅读程序并写出运行结果,1下面程序运行的结果是_: #include #define MAX_COUNT 4 void 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“, fun(3); ,0,返回目录,C语言程序设计 函数, 阅读程序并写出运行结果,3下面程序运行的结果是_: #include unsigned int fun(unsigned num) unsigned int k=1; do k=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+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编程实现从键盘输入一整数,如果该整数为素数,则返回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)a1 B)p1 C)*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)80 B)81 C)84 D)85 7执行语句“char a10=“abcd“,*p=a;后,(p+4)的值是 A)“abcd“ B)0 C)d D)不能确定 8设已定义int a32=10,20,30,40,50,60;和语句(*p)2=a;则*(*(p+2)+1)的值为 A)60 B)30 C)50 D)不能确定,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, 8 B)程序出错 C)4, 2,12,11 D)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 : 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=3 C)a=9,b=5,c=3,d=8 D)a=0,b=2,c=3,d=3,A,返回目录,C语言程序设计 指针,单项选择题,12若有以下程序: #include main ( int argc, char *argv ) while ( -argc ) printf ( “%s“, argvargc ); printf ( “n“ ); 该程序经编译和连接后生成可执行文件S.EXE。现在如果在DOS提示符下键入S AA BB CC后回车,则输出结果是: A)AABBCC B)AABBCCS C)CCBBAA D)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)p2 C)p1+1 D)(p+1)+2,B,C,返回目录,C语言程序设计 指针,单项选择题,15若有int max( ), (*p)( ); 为使函数指针变量p指向函数max,正确的赋值语句是: A)p=max; B)*p=max; C)p=max(a, b); D)*p=max(a, b); 16若有定义int a35, i, j; (且0i3, 0j5),则aij不正确的地址表示是: A)&aij B)ai+j C)*(a+i)+j D)*(*(a+i)+j),A,D,返回目录,C语言程序设计 指针,单项选择题,17设先有定义: char s10; char *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论