C - C++语言同步习题 - 2007(答案和分析zeng)(10)

2019-08-03 11:55

printf(\

return 0; }

int func(int a, int b) {

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

6. 有以下程序

#include \

a=24 b=16 int abc(int u, int v);

u=24 v=16 main( )

u v w=u%v u=v v=w {

24 16 24=8 16 8 int a=24,b=16,c;

16 8 16%8=0 8 0 c=abc(a, b);

8 0 printf(\

return 0; }

int abc(int u, int v) {

int w; while(v) {

w=u%v; u=v; v=w; }

return u; }

输出结果是 。 8

三、程序填空题

1. 下面的函数将一个整型数组按降序排序后,结果仍存入该数组

sort(int array[ ], int num) {

int i,j,temp; for( 错误!未找到引用源。 ; j>0; j--) j=num for(i=0; i

if( 错误!未找到引用源。 ) array[i]

{

temp=array[i];

array[i]=array[i+1]; array[i+1]=temp;

46

} } } ① j=num ②Array[i]

2. 下面程序用于求S?1!?2!???n!,试将其补充完整。

long int factor(int n) {

int i;

long int t=1; for(i=1;i<=n;i++)

t= ① ; t*i return t; }

main( ) {

long int s=0; int k,n;

scanf(\for(k=1;k<=n;k++)

s= ② ; s+factor(n) printf(\ }

3. 输入两个正整数m和n,求其最大公约数和最小公倍数

f(int a, int b) {

int i,max;

for(i=1;i<=b/2;i++)

if( ① ) (a%i= =0)&&(b%i= =0)

max=i;

return(max);

}

main( ) {

int n,m,max,min;

printf(―输入两个正整数 n , m:‖); scanf(―%d,%d‖,&n,&m); if(m>n)

max=f(m,n);

else

max=f(n,m);

mix= ② ; (m*n)/max

printf(―最大公约数为:%d,最小公倍数为:%d‖,max,min);

}

4. 下面程序能统计主函数调用count函数的次数(用字符#作为结束输入的标

志)。

47

#include\main( ) {

char ch; while(1) {

scanf (\

count (ch);

if ( ① ) ch = = ' # '

break;

} }

count (char c) {

static int i=0; i++;

if ( ② ) c = = ' # '

printf (\

} 5. 统计两个数组中相应元素大于、等于或小于的次数,并由此决定那个数组较

大。

#include int large(int x, int y);

main( ) {

int i,k=0,m=0,n=0,flag;

int a[10]={1,3,5,7,9,8,6,4,2,0}; int b[10]={5,3,8,9,-1,-3,5,6,0,4}; for(i=0;i<10;i++) {

flag=large(a[i],b[i]);

if(flag==1) 错误!未找到引用源。 ; n++ else if(flag==0) m++; else k++; }

printf(\d\\n\ if(n>k)

printf(\ else if(n

printf(\

48

}

int large(int x,int y) {

int flag;

if(x>y) flag=1; else if(x

}

第8章 编译预处理

一、单项选择题

1. 以下有关宏替换的叙述不正确的是( )。D

A)宏替换不占用运行时间 B)宏名无类型

C)宏替换只是字符替换 D)宏名必须用大写字符表示 2. 若有宏定义:#define MOD(x,y) x%y

则执行以下语句后的输出为( )。B int z,a=15,b=100; z=MOD(b,a);

printf(―%d\\n‖,z++);

A)11 B)10 C)6 D)宏定义不合法 3. 请选出以下程序段的输出结果( )。A

#include

#define MIN(x,y) (x)<(y)?(x):(y) main( ) {

int i,j,k; i=10; j=15; k=10*MIN(i,j);

printf(\ } A)15 B)100 C)10 D)150 4. 请读程序:

#define ADD(x) x+x main( ) {

int m=1,n=2,k=3;

int sum=ADD(m+n)*k; m+n+m+n*k printf(―sum=%d‖,sum); }

上面程序的运行结果是( )。B

A)sum=9 B)sum=10 C)sum=12 D)sum=18 5. 执行下面的程序后,a的值是( )。B

#define SQR(X) X*X

49

main( ) {

int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m); k+m*k+m/k+m*k+m printf(\ }

A)10 B)1 C)9 D)0 6. 下列程序执行后的输出结果是( )。B

#define MA(x) x*(x-1) main( ) {

int a=1,b=2;

printf(\

}

A)6 B)8 C)10 D)12 7. 以下程序的输出结果是( )。 B

#include ―stdio.h‖

#define FUDGE(y) 2.84+y

#define PR(a) printf(\ #define PRINT1(a) PR(a); putchar(?\\n‘) main( ) {

int x=2;

PRINT1(FUDGE(5)*x); } A)11 B)12 C)13 D)15 8. 下面程序运行的结果是( )。 A

#define f (x) 1+x+x*x #include void main( ) {

int a=2, b=3;

printf(\ } A)17 B)31 C)13 D)7 9. 以下for语句构成的循环执行了( )次。C ??#define N 2 ??#define M N+1

??#define NUM (M+1)*M/2 ? main( ) ??{

int i , n=0;

?? for( i=1;i<=NUM;i + + ) (2+1+1)*2+1/2 4*2+0 ?? n++;

50


C - C++语言同步习题 - 2007(答案和分析zeng)(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:反应釜液位控制电路信号变换综合设计课程设计 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: