当前位置:首页 > c语言答案
18.下列语句中错误的是( A )。 A.#define PI=3.1415926 B.#include \C.if(2); D.for(;;)if(1)break; 19.设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z的值为( B )。 #define N 3
#define Y(n) ((N+1)*n)
A.出错 B.42 C.48 D.54 20.以下程序中的for循环执行的次数是( C )。 #include \#define N 2 #define M N+1
#define NUM (M+1)*M/2 main()
{ int i,n=0;
for(i=1;i<=NUM;i++) printf(\} A.5 B.6 C.8 D.9 二、填空题
1.C语言中的函数,从能否可以返回值上可分为 有返回值 函数和 无返回值 函数。 2.定义函数时,在函数头中除有函数名称外,还应有 函数类型 、 参数类型 和 名称 等信息。 3.必须对函数 定义 才能确立函数可实现的功能,只有对函数 调用 才能实现函数的功能。 4.C语言中,函数的调用有 函数语句 、 函数表达式 和 函数实参 三种方式。 5.C语言中,每个变量都有作用域和生存期,变量的作用域是 变量有效范围 ,变量的生存期是 变量的作用时间 。 6.对函数或变量的 声明 是告诉系统此程序段要用到在其后面才定义的函数或变量,使函数或变量的作用域得以扩展。 7.C语言中,变量的存储类型有 4 种,存储方式有 2 种。 8.以下程序的输出结果是 246 。 void fun()
{ static int a=0; a+=2;
printf(\}
main() { int cc;
for(cc=1;cc<4;cc++) fun() printf(\}
9.以下程序的运行结果是 111 。 main()
{ increment(); increment(); increment(); }
increment() { int x=0; x+=1;
printf(\
}
10.以下程序执行后输出的结果是 4 。 #include
main()
{ int a=2,i,k;
for(i=0;i<2;i++) k=f(a++);
printf(\}
11.以下程序执行后输出的结果是 4 。 long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2)); else return(2); }
main()
{ printf(\
12.以下程序执行后输出的结果是 s=14 。 #include
long sum(register int x,int n) { long s; int i;
register int t; t=s=x;
for(i=2;i<=n;i++) { t*=x; s+=t; } return(s); }
main()
{ int x=2, n=3;
printf(\}
13.设有定义如下:#define F(N) 2*N, 则表达式F(2+3)的值是 7 。 14.下面程序的执行结果是 5 6 12 。 #include
s=(x++)+(++y); return s; }
main()
{ int a,b,k; a=5;b=6; k=fx(a,b);
printf(\}
15.下面程序for循环执行 6 次,程序的运行结果是 123456 。 #include
#define FMN M+M main()
{int i,n=0;
for(i=0;i 16.下面程序的执行结果是 7 。 #include { int a,m=5,n=2; a=SR(m-n)/SR(m+n); printf(\} 17.设数组a有50个元素,函数fun1()的功能是按顺序分别给数组a中的元素赋以从2开始的偶数值,函数fun2()则按顺序每五个元素求一个平均值,并将求得的值放在数组s中,在空白处完成该程序。 #include for (i=0,k=2;i fun2(float a[],float s[]) { float sum=0; int i,k; for(i=0,k=0;i if((i+1)%5==0) { s[k]=sum/5;k++; sum=0 ; } } } main() { float a[N],s[N/5]; int i; fun1(a); fun2(a,s); for(i=0;i printf(\ printf(\ for(i=0;i printf(\} 18.下面程序的运行结果是 xbcxyz 。 #include { int k=0; char s1[10]=\strcat(s1,s2); while(s1[k++]!='\\0') s2[k]=s1[k]; puts(s2); } 19.下面程序经宏展开后,程序运行结果是 sum=145 。 #define PR printf(\#define ADD sum+=i main() { int i,sum=0; for(i=10;i<20;i++) ADD; PR; } 20.下面程序的运行结果是 1000 10 。 #include m=1000/s(N); n=1000/f(N); printf(\} 习 题 七 一、选择题 1.变量的指针,其含义是指该变量的( B )。 A.值 B.地址 C.名 D.一个标志 2.以下程序中调用scanf()函数给变量a输入数值的方法是错误的,错误原因是( B )。 main() { int *p,*q,a,b; p=&a; printf(\scanf(\┆ } A.*p表示的是指针变量p的地址 B.*p表示的是变量a的值,而不是变量a的地址 C.*p表示的是指针变量p的值 D.*p只能用来说明p是一个指针变量 3.以下程序错误的原因是( A )。 main() { int *p,i; char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ┆ } A.p和q的类型不一致,不能执行*p=*q;语句 B.*p中存放的是地址值,因此不能执行*p=40;语句 C.q指向具体的存储单元,所以*q没有实际意义 D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行
共分享92篇相关文档