c语言真题20套

导读:若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C),C语言规定:else子句总是与(A)配对,第一套下列正确的标识符是(C).A、a+bB、6aC、_doD、%y执行以下程序段后,输出结果和a的值是(B)。inta=10;printf(\A、11和10B、10和11C、11和11D、10和10以下不正确的if语句形式是(B)。A、if(xy&&x!=y);D、if(x==y)x+=y;

c语言真题20套

第一套

下列正确的标识符是(C ).

A、a+b B、6a C、_do D、%y

执行以下程序段后,输出结果和a的值是(B)。 int a=10; printf(\

A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 以下不正确的if语句形式是(B)。

A、if(xy&&x!=y); D、if(x==y) x+=y;

int a=3,b=2,c=1; if(a>b && b>c)a=b; else a=c;则a的值为(C)。 A、1 B、0 C、2 D、3

对for(表达式1; ;表达式3)可以理解为(C ).

A、for(表达式1;表达式3;表达式3) B、for(表达式1;表达式1;表达式3) C、for(表达式1;1;表达式3) D、for(表达式1;0;表达式3) 运行结果是\的程序段是:请在A处填写正确内容(B )。 for(i=1;i<=2;i++) ___A___

A、for(j=1;j<=2;j++)printf(\B、{for(j=1;j<=2;j++)printf(\C、for(j=1;j<=2;j++)printf(\D、{for(j=1;j<=2;j++)printf(\static char str[10]=\数组元素个数为(D)。 A、6 B、9 C、5 D、10 以下程序的输出结果是:(C ).

fun(int x, int y, int z){ z=x*x+y*y; }main( ) { int a=31; fun(5,2,a); printf(\ a);}

A、无定值 B、29 C、31 D、0 文件包含中,被包含文件(B ).

A、可以是可执行文件. B、可以嵌套其它文件.

C、可以是目标文件或源文件. D、必须用\为后缀. 下列程序段的输出结果是:(C ).

void fun( int *x, int *y){ printf(\main( ){ int x=1, y=2;fun(&y, &x); printf(\ %d\A、2 1 1 2 B、1 2 3 4 C、2 1 4 3 D、1 2 1 2 1.在C程序中,main函数必须位于程序的最前面 错误 2.表达式 (j=3, j++) 的值是4. 错误

3.已知a=3,b=4,c=5,则逻辑表达式a||b+c && b-c的值为0.【参考答案】错误 4.循环结构中的continue语句是使整个循环终止执行【参考答案】错误 5 在实际编程中,do-while循环完全可以用for循环替换.【参考答案】正确 6 引用数组元素时,数组元素下标必须是整型常量.【参考答案】错误

7 如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。正确 8 带参数的宏定义不是进行简单的字符串替换,还要进行参数替换.【答案】正确 9 下列的初始化的方式是正确的吗? char st[10]; st=\【答案】错误 10 在定义结构体变量时不允许对它赋初值.【参考答案】错误 三.填空

设i,j,k均为int型变量,则执行完下面的for循环后,k的值为__10___. for(i=0,j=10;i<=j;i++,j--) k=i+j;

4.结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_类型____,再说明结构体变量.

四.【程序设计】 功能:将主函数中输入的字符串反序存放。例如:输入字符串\,则应输出\。 注意: 请在Begin 和 End 注释行之间填写代码, 所有注释语句都不能删除。 #include \ #include \#include \ #define N 81 void fun(char str[],int n)

{ /*********Begin**********/ 【参考代码】 int i,j; char c;

for(i=0,j=n-1;i

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

void main()

{ void TestFunc(); char s [N]; int l; printf(\ l=strlen(s); fun(s,l); printf(\五.【程序改错】

功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。 #include \int fun()

{ int a[3][3],sum;int i,j;

/**********ERROR**********/ a=0;

for(i=0;i<3;i++) for(j=0;j<3;j++)

/**********ERROR**********/ scanf(\ for(i=0;i<3;i++)

/**********ERROR**********/ sum=sum+a[i][j];

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

void main() {fun();}

1【参考答案】sum=0;2【参考答案】scanf(\

3【参考答案】sum=sum+a[i][i]; sum+=a[i][i];4【参考答案】printf(\六.【程序填空】先将在字符串s中的字符按正序存放到t串中,然后把s中的 字符按逆序连接到t串的后面。 #include \ #include \void fun (char s[], char t[]) { int i, sl;

/***********FILL***********/ sl = _____; for(i=0; i

for (i=0; i

/***********FILL***********/ t[sl+i] = _____;

/***********FILL***********/ t[sl+i]=_____; }

void main()

{ char s[100], t[100];

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

printf(\ fun(s, t); printf(\

1【参考答案】 strlen(s) 2【参考答案】 s[sl-i-1] s[strlen(s)-i-1] 3【参考答案】 '\\0' 0 4【参考答案】 scanf

第二套

若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C )。 A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1;

用scanf函数输入数据,使得x=9.6,y=81.73选择正确的输入语句(D ).

A、scanf(\、scanf(\C、scanf(\、scanf(\int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为(C)。 A、1 B、3 C、2 D、不一定

为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:else子句总是与(A)配对。 A、其之前最近的未配对的ifB、其之后最近的if C、同一行上的if D、缩排位置相同的if 存在多层嵌套循环时,下列说法正确的是(D ).

A、continue语句可以中止所有循环B、break语句可以中止所有循环 C、continue语句能够中止包含该语句的最内层循 D、break语句能够中止包含该语句的最内层循环

下面程序正确的运行结果是(B ).(答案中用大写字母U代表空格) main()

{ int num=0; while(num<=2)

{ num++; printf(\

A、UU 1 B、UU1UU2UU3 C、UU1UU2UU3UU4 D、UU1UU2 int a[10];合法的数组元素的最小下标值为(D)。 A、10 B、9 C、1 D、0

下面叙述中错误的是( B)。

A、在其它函数中定义的变量在主函数中也不能使用B、主函数中定义的变量在整个程序中都是有效的C、复合语句中定义的变量只在该复合语句中有效D、形式参数也是局部变量 设有宏定义#define MAX(x,y) (x)>(y)?(x):(y),则F=4*MAX(2,3)的值为(B ). A、3 B、2 C、12 D、8 设有以下定义:

int w[3][4]={{0,1},{2,4},{5,8}}; int (*p)[4]=w; 则数值为4的表达式是(B ).

A、*w[1]+1 B、p[1][1] C、p++,*(p+1) D、w[2][2]

1 .printf 函数的一般格式为:printf (格式控制,输出表列). 【参考答案】 正确 2在C程序中,%是只能用于整数运算的运算符【参考答案】正确 3逻辑表达式4>2&&1||5<3-!0的值为1.【参考答案】正确

4continue语句对于while和do-while循环来说,意味着转去计算While表达式. 【参考答案】正确

5do-while循环由do开始,while结束,在while(表达式)后面不能加分号. 【参考答案】错误

6对任何一个二维数组的元素,都可以用数组名和两个下标唯一地加以确定. 【正确 7每次调用函数时,都要对静态局部变量重新进行初始化.【参考答案】错误 8若有 #define S(a,b) a*b 则语句 area=S(3,2); area的值为6。【参考答案】正确 9设有定义 : int a[10], *p; 则下列的语句是等价的. p=&a[0]; p=a; 正确

10共用体变量在引用时不能只用共用体变量名,必须使用某个成员名.【答案】正确 三.填空,1已知a=13,b=6, a%b的十进制数值为__1___.

2当a=3,b=2,c=1;时,执行以下程序段后 b=__1___. if(a>b) a=b; if(b>c) b=c; else c=b; c=a; 3若输入字符串:abcde<回车>,则以下while循环体将执行 __0___ 次. while((ch=getchar())=='e') printf(\

4求字符串长度的库函数是_strlen____,只写函数名即可.

5 feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为_非0值_, 否则为__0__. 四【程序设计】

功能:对任意输入的 x,用下式计算并输出 y 的值。(还可以尝试用case语句) -1 x<0 y= 0 x=0 1 x>0 #include \int fun(int n)

{ /*********Begin**********/ 【参考代码】 int m; if(n<0) m=-1; else

if(n==0) m=0; else m=1; return m;

/********** End **********/

}

void main ()

{ void TestFunc(); int x,y;

printf(\ scanf(\ y=fun(x);

printf(\ TestFunc(); }

六 改错-功能:将6个数按输入时顺序的逆序进行排列. #include \

void sort(char *p,int m)

{ int i; char change,*p1,*p2; for(i=0;i

{ /***********ERROR***********/ *p1=p+i; *p2=p+(m-1-i); change=*p1; *p1=*p2; *p2=change;}} main( ) { int i;

/***********ERROR***********/ char p,num[6]; for(i=0;i<=5;i++)

/***********ERROR***********/ scanf(\ p=&num[0];

/***********ERROR***********/ sort(*p,6);

for(i=0;i<=5;i++) printf(\}

【参考答案】p1=p+i; p2=p+(m-1-i);【参考答案】char *p,num[6]; 【参考答案】scanf(\【参考答案】sort(p,6);

【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。(冒泡法或选择法,尝试用来程序设计) #include \main()

{ void swap(int *p1, int *p2); int n1,n2,n3;

int *pointer1,*pointer2,*pointer3;

printf(\ scanf(\ pointer1=&n1; pointer2=&n2;

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

本文共10页1234>>10