程序设计语言C复习 { k*=num;num/=10;}while(num); return k;} main()
{ unsigned n=26; printf(“%d\\n”,fun6(n)); } 2.以下程序的输出结果是 9.000000 。
double sub(double x,double y,double z) { y-=1.0;z=z+x;return z;} main()
{ double a=2.5,b=9.0; printf(“%f\\n”,sub(b-a,a,a));} 3.以下程序的输出结果是 4 。
fun1(int a,int b) { int c;
a+=a;b+=b;c=fun2(a,b); return c*c;}
fun2(int a,int b) { int c;
c=a*b%3;return c;} main()
{ int x=11,y=19; printf(“%d\\n”,fun1(x,y));}
4.下面pi函数的功能是,根据以下公式返回满足精度ε要求的π的值。请填空。
double pi(double eps)
{ double s=0.0,t=1.0;int n; for( ;t>eps;n++) { s+=t;t=n*t/(2*n+1); return (2.0* );} 5.以下函数是求x的y次方。请填空。
double fun(double x,int y) { int i;double z=1;
for(i=1;i <=y ;i++) z= z*x ;return z;} 6.以下程序的功能是计算s=。请填空。
long f(int n) { int i;long s;
s= 1 ;for(i=1;i<=n;i++) s= s*n ; return s;} main()
第 17 页 共 24 页
程序设计语言C复习 { long s;int k,n; scanf(“%d”,&n);s= 0 ;
for(k=0;k<=n;k++) s=s+ f(k) ; printf(“%d\\n”,s);}
㈡.选择题:
1.以下说法中正确的是( C )。
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main函数中定义 C.C语言程序总是从main函数开始执行
D.C语言程序中的main函数必须放在程序的开始部分 2.以下函数的类型是( C )。
A.与参数x的类型相同 B.void类型 C.int类型fff(float x) { printf(“%d\\n”,x*x);}
3.以下函数调用语句中,含有的实参个数是( B )。 A.1 B.2 C.4 D.5
func((exp1,exp2),(exp3,exp4,exp5)); 4.以下程序的输出结果是( C )。
A.11 B.20 C.21 D.31
func(int a,int b)
{ int c;c=a+b;return c;} main()
{ int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf(“%d\\n”,r);} 5.以下程序的输出结果是( A )。
A.-1 B.0 C.1 D.2
main()
{ int i=2,p; p=f(i,i+1); printf(“%d\\n”,p);} int f(int a,int b) { int c;c=a;
if(a>b) c=1;else if(a==b) c=0;else c=-1; return (c);}
6.以下程序输出的结果是( C )。
A.0 B.1 C.6 D.无定值
fun(int a,int b,int c)
第 18 页 共 24 页
.无法确定 D
程序设计语言C复习 { c=a*b;} main() { int c;
fun(2,3,c);printf(“%d\\n”,c);} 7.以下程序输出的结果是( A )。
A.5.500000 B.3.000000 C.4.000000 D.8.25 double f(int n) { int i;double s;
s=1.0;for(i=1;i<=n;i++) s+=1.0/i;return s;} main()
{ int i,m=3;float a=0.0; for(i=0;i㈢.程序设计题:
1.书上P186页8.1、8.3、8.11、8.18 2.用递归法求n!。
3.用递归法求1+2+??+n。
第九章 预处理命令
一.知识点
1.宏定义:注意带参宏定义
2.文件包含:注意两种书写方式的区别
二.练习
㈡.选择题:
1.以下程序的输出结果是( A )。
A.15 B.100 C.10 D.150
#define MIN(x,y) (x)
{ int i,j,k;i=10;j=15;k=10*MIN(i,j); printf(“%d\\n”,k);}
2.以下程序中的for循环执行的次数是( D )。 A.5 B.6 C.8 D.9
#define N 2 #define M N+1
#define NUM (M+1)*M/2 main()
第 19 页 共 24 页
程序设计语言C复习 { int i;for(i=1;i<=NUM;i++); printf(“%d\\n”,i);} 3.以下程序的输出结果是( B )。
A.11 B.12 C.13 D.15
#include “stdio.h”
#define FUDGF(y) 2.84+y #define PR(a) printf(“%d”,(int)(a)) #define PRINT1(a) PR(a);putchar(‘\\n’) main()
{ int x=2;PRINT1(FUDGF(5)*x); } 4.以下叙述正确的是( D )。
A.用#include包含的头文件的后缀不可以是“.a”
B.若一些源程序中包含某个头文件;当该头文件有错时,只需对该头文件进行修改,包含此头文件所有源程序不必重新进行编译 C.宏命令可以看做是一行C语句
D.C编译中的预处理是在编译之前进行的。 5.以下有关宏替换的叙述不正确的是( D )。
A.宏替换不占用运行时间 B.宏名无类型
C.宏替换只是字符替换 D.宏名必须用大写字母表示
第十章 指针
一.知识点
1.指针的概念 2.指针变量 3.指针与数组 4.指针与字符串
a[0] 10 a[1] 20 a[2] 30 图8.1
a[3] 40 a[4] 50 二.练习
p ↑
㈠.填空题:
1.若有定义:char ch;
⑴使指针p可以指向变量ch的定义语句是 char *p=&ch; 。 ⑵使指针p指向变量ch的赋值语句是 p=&ch; 。
⑶通过指针p给变量ch读入字符的scanf函数调用语句是 scanf(“%c”,p); 。 ⑷通过指针p给变量ch赋字符的语句是 *p=’a’; 。
⑸通过指针p输出ch中字符的语句是 putchar(*p);或printf(“%c”,*p) 。
2.若有如图8.1所示五个连续的int类型的存储单元并赋值,且p和s的基类型皆为int,p已指向存储单元a[1]。
第 20 页 共 24 页