c语言真题20套

导读:1在C语言中,3在C语言中,4C语言的switch语句中case后(C),填空1在C语言中,#include\voidmain(){intn;floatfun();printf(\/**********ERROR**********/print(\printf(\}/**********ERROR**********/fun(intn){inti,j,t;floats;s=0;/*******

c语言真题20套

#include \void main() { int n; float fun();

printf(\ /**********ERROR**********/

print(\ printf(\}

/**********ERROR**********/

fun(int n) { int i,j,t;float s; s=0;

/**********ERROR**********/

while(i=1;i<=n;i++); { t=0; for(j=1;j<=i;j++) t=t+j; /**********ERROR**********/

=s+1/t; } return s;}

【参考答案】scanf(\【参考答案】float fun(int n) 【参考答案】for(i=1;i<=n;i++) for(i=1;n>=i;i++)【参考答案】s+=1.0/t; s=s+1.0/(float)t; s=s+1.0/t; 【程序填空】功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中 马驮2担,两匹小马驮一担,求大、中、小马各多少匹? #include \main()

{ int hb,hm,hl,n=0;

/***********FILL***********/ for(hb=0;hb<=100;hb+=_____) /***********FILL***********/ for(hm=0;hm<=100-hb;hm+=_____)

{ /***********FILL***********/ hl=100-hb-_____;

/***********FILL***********/ if(hb/3+hm/2+2*_____==100) { n++;

printf(\ } } printf(\}

【参考答案】3【参考答案】2【参考答案】hm【参考答案】hl 第七套

1 在C语言中,要求运算对象必须是整型的运算符是(B)。 A、++ B、% C、!= D、/

3 在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式(C)。 A、只能用逻辑表达式或关系表达式B、只能用关系表达式 C、可用任意表达式D、只能用逻辑表达式

4 C语言的switch语句中case后(C )。

A、可为任何量或表达式B、可为常量或表达式或有确定值的变量及表达式 C、只能为常量或常量表达式D、只能为常量 5 t为int类型,进人下面的循环之前,t的值为0

while( t=1 ) { ……} 则以下叙述中正确的是( C)。 A、循环控制表达式的值为0 B、循环控制表达式不合法 C、循环控制表达式的值为1 D、以上说法都不对 6 下面有关 for 循环的正确描述是(C )。

A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体

C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况

7 char a[]=\输出前5个字符的语句是(B)。

A、puts(a); B、printf(\、printf(\ D、a[5*2]=0;puts(a); 8 下列说法中错误的是(A )。

A、如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值B、一个数组只允许存储同种类型的变量 C、数组的名称其实是数组在内存中的首地址

D、当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改 9 下列形式,不属于编译预处理命令的是(D ).

A、#ifdef M B、#undef M C、#if (M>1) D、while (M>1)

10 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是(C ). A、p1=p2; B、k=*p1*(*p2); C、p2=k; D、k=*p1-*p2; 判断

1 一个C程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 错误

2 整型变量在可输出字符范围内,可以和字符型数据相互转化. 正确 3 设f=1,m=2,n=3,则逻辑表达式!(f==n)&&(f==m)&&0的值为0. 正确 4 do-while循环由do开始,while结束,循环体可能一次也不做。 错误 5 因为程序包含循环结构,所以程序算法可以包含无限的操作步骤. 错误 6 对静态数组的初始化是在编译阶段完成的. 正确

7 若一个函数中没有return语句,则意味着该函数没有返回值. 错误

8 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。 【参考答案】错误

9用指针取值比用数组名取值速度要快.正确

10 在定义结构体变量时,不允许对其整体赋初值. 正确 填空

1 设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是0_____.

2 当a=1,b=2,c=3时,执行以下程序段后c=2_____. if (a>c) b=a; a=c; c=b; 3 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为_10____. for(i=0,j=10;i<=j;i++,j--) k=i+j;

4若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 数组元素a[3]的值是_8____.

5从函数的形式上看,函数分为无参函数和_____两种类型. 有参函数

【程序设计】功能:求x到y之间的奇数和(包括x和y)。 #include \int fun(int x,int y)

{ /*********Begin**********/ 【参考代码】 int i,s=0;

for(i=x;i<=y;i++) if(i%2!=0) s=s+i; return s;

/********** End **********/ }

main() { int s;

s=fun(1,1999); printf(\ TestFunc();

}【程序改错】功能:实现3行3列矩阵的转置,即行列互换。 #include \

void fun(int a[3][3],int n) { int i,j,t;

for(i=0;i

/**********ERROR**********/ scanf(\ for(i=0;i

{ for(j=0;j

for(i=0;i

/**********ERROR**********/ for(j=0;j

{ /**********ERROR**********/ a[i][j]=t;

a[i][j]=a[j][i];

/**********ERROR**********/ t=a[j][i];

} for(i=0;i

void main()

{ int b[3][3];fun(b,3);}

【参考答案】scanf(\ scanf(\【参考答案】 for(j=0;jj;j++) 【参考答案】t=a[i][j]; 【参考答案】a[j][i]=t;

【程序填空】功能:产生10个[30,90]区间上的随机整数,然后对其用选择法 进行由小到大的排序。 #include \void main()

{ /***********FILL***********/ _____; int i,j,k; int a[10];

for(i=0;i<10;i++)

a[i]=rand()a+30; //产生[30,90]区间上的随机整数 for(i=0;i<9;i++)

{ /***********FILL***********/ _____;

for(j=i+1;j<10;j++)

/***********FILL***********/ if(_____) k=j; if(k!=i)

{ t=a[k];a[k]=a[i]; a[i]=t; } }

/***********FILL***********/

for(_____ ) printf(\

【参考答案】int t【参考答案】k=i【参考答案】a[k]>a[j] a[j]i;i++ 第八套

若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(B)。 A、6 B、-12 C、9 D、-3 求平方根函数的函数名为(C)。 A、abs B、pow C、sqrt D、cos

int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(C)。 A、3 B、2 C、1 D、不一定 执行下面程序段后,f的值是:( A) int f=5; switch(f)

{case 5:f+=1; case 6:f--; case 7:f*=3;break; case 8:++f;} A、15 B、10 C、28 D、9

在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(B )。 A、(E>0||E<0) B、(E==0 ) C、(!E==0) D、(E!=0)

能够完成求出两个正整数a,b最小公倍数max的程序段.请在下划线处填写正确内容(D )。 if(a>=b) t=a; else t=b;

for(i=t; ;i++) if(i%a==0&&i%b==0) ___________ printf(\

A、{max=i;continue;} B、max=i;break; C、max=i;continue; D、{max=i;break;} 以下能对一维数组a进行正确初始化的语句是(B)。

A、int a[10]={}; B、int a[]={0}; C、int a[10]={10*1}; D、int a[10]=(0,0,0,0,0) 以下只有在使用时才为该类型变量分配内存的存储类说明是(D)。

A、auto和 static B、register和 static C、extern和 register D、auto和 register file1.c中有命令,#include ,若file2.c中有全局静态变量a,则(B ).

A、a在file1.c中应用extern说明.B、a在file1.c中有效,不必用extern说明. C、a在file1.c中不生效 D、a在file1.c和file2.c中均不生效. 在说明语句:int *f();中,标识符f代表的是(A)。

A、一个返回值为指针型的函数名B、一个用于指向函数的指针变量

C、一个用于指向一维数组的行指针D、一个用于指向整型数据的指针变量 判断

1 一个C程序只能由一个主函数组成 错误 2 语句scanf(\是合法的。 错误

3 设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0. 错误

4 对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.错误 5 在循环嵌套中,使用break语句可以跳出所有循环. 错误

6 定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式. 正确

7 数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值. 错误 8 计算机编译系统对宏定义在编译时进行语法检查. 错误 9 任何一个地址前缀*运算符后都等同于一个变量. 正确 10 typedef可以定义生成新的数据类型. 错误

填空 1在C语言中,字符的比较就是对它们的_____进行比较。ASCII

2 当a=1,b=2,c=3时,执行以下程序段后a=_3__. if (a>c) b=a; a=c; c=b; 3 以下程序的输出结果为_10____,

#include \ void main() {int a;for(a=0;a<10;a++);printf(\4 字符串比较的库函数是_____,只写函数名即可. strcmp

5 函数的_____调用是一个函数直接或间接地调用它自身. 递归 【程序设计】功能:实现两个整数的交换。

例如:给a和b分别输入:60和65,输出为:a=65 b=60 #include \#include \void fun(int *a,int *b)

{ /*********Begin**********/ 【参考代码】 int t;

t=*a;*a=*b;*b=t;

/********** End **********/ } main() { int a,b;

void TestFunc(); printf(\

五星文库wxphp.com包含总结汇报、考试资料、专业文献、外语学习、教学教材、行业论文、资格考试、党团工作、人文社科、办公文档、教程攻略、应用文书、旅游景点以及c语言真题20套等内容。

本文共10页1234567>>10