C语言作业及答案 联系客服

发布时间 : 星期四 文章C语言作业及答案更新完毕开始阅读ae5e3367846a561252d380eb6294dd88d1d23d59

作业A:

一、单项选择题

1、如果要把常量327存入变量a中,a不能定义的类型是哪一个? ( )

A) int B) char C) long D) float 2、若x 为unsigned int 型变量,则执行下列语句后x值为( )

x = 65535; printf(“%d\\n”,x);

A)65535 B)1 C)无定值 D)-1 3、有以下程序 main()

{int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a

程序运行后的输出结果是 ( )

A)0,0 B) 0,1 C)1,0 D)1,1 4、在C语言中,如果下面的变量都是int类型,则输出的结果是( )。 sum=pad=5; pAd=sum + + ,pAd + +, + + pAd; printf(\

A) 7 B) 6 C) 5 D) 4

5、以下程序的输出结果是()。

main()

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(\} A)1

B)0

C)非0的数

D)-1

6、当执行以下程序段时()。

x=-1; do{

x=x*x; }while(!x);

A)循环体将执行一次

B)循环体将执行两次 D)系统将提示有语法错误

C)循环体将执行无限次

7、全局变量的存储类型可以定义为( )。

A)auto或static B) extern或 register C) auto或extern D) extern或static

8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是( )。

A)auto B) register C) extern D) static

9、已知:int a, x; 则正确的赋值语句是( )。

A) a=(a[1]+a{2})/2; B) a*=*a+1; C) a=(x=1, x++, x+2); D) a=\10、已知:int a, *p=&a; 则下列函数调用中错误的是( )。 A) scanf(\ B) scanf(\ C) printf(\ D) printf(\11、下述程序的输出结果是 ( )。

#include void main( )

{ struct complex { int x ; int y;

} cnum[2]={1,3,2,7};

printf(“%d”, cnum[0].y/cnum[0].x*cnum[1].x) ; }

A) 0 B) 1 C) 3 D) 6 12、下述程序的输出结果是( )。 #include

void main( ) { union

{ unsigned char c ; unsigned int i[4]; }z ;

z.i[0]=0x39 ; z.i[1]=0x36; printf(“%c”,z.c); }

A) 6 B) 9 C) 0 D) 3 13、下述关于C语言文件操作的结论中,( )是正确的。

A)对文件操作必须先关闭文件 B)对文件操作必须先打开文件 C)对文件操作顺序无要求

D)对文件操作前必须先测试文件是否存在,然后再打开文件 14、以下程序的输出结果是( )。 main()

{ char ch[3][4]={\int i;

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

p[i]=ch[i]; for (i=0;i<3;i++)

printf(\

A)123456780 B)123 456 780 C) 12345678 D)15、对于所定义的二维数组a[2][3],元素a[1][2]是数组的第( )个元素。

A)3 B)4 C)5 D)6 二、判断题

1、 赋值运算符的优先级低于关系运算符( )。 2、 条件运算符的结合方向是“自左向右” ( )。

147 3、 C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现( )。 4、 C程序中的函数不能嵌套调用,但可嵌套定义( )。

5、 若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句( )。

6、 当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址( )。 7、 若有说明:static int a[3][4];,则数组a中各数组元素可在程序的编译阶段得到初值0( )。 8、 若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值( )。 9、 利用指针和结构体类型可以构成表、树等复杂的数据结构( )。 10、共用体变量的地址和它的各成员的地址都是同一地址( )。

11、printf函数中的“%0”格式参数表示用来输出unsigned型数据( )。

12、在一个C程序中,所有要使用的变量和要调用的函数都必须在main( )函数中定义( )。 13、赋值运算符的结合性是“自右至左” ( )。 14、一个C程序可以由多个源程序文件组成 ( )。 15、do-while语句构成的循环,当while语句中的表达式的值为零时结束循环 ( )。 三、写出下面各程序的运行结果

1、 #includestdio.h main()

main ( ) { static int array[ ]={0,1,2,3,4,5,6,7,8,9}; {int i=0, j=0, k=0, m;

int j;

for (m=0; m4; m++)

add1(array,10); switch (m)

{case 0: i=m++; for(j=0;j<10;j++) case 1: j=m++; printf(“%d”,array[j]); case 2: k=m++;

} case 3: m++;

4、union data }

printf(“\\n%d, %d, %d, %d”, i, j, k, m); { long w; }

float x;

2、 #includestdio.h

int y; main ( )

{int i=1; char z; while (i=15) } beta; if (++i% 3!=2)

main( )

continue;

{ beta.w=123456; else

printf(“%d”, i); beta.y=888; } beta.x=3.14; 3、#include

beta.z=’x’;

add1(int a[ ], int n)

printf(“%c”,beta.y);

{ int i;

}

for(i =0;i

5、# include

typedef struct student{

char name[10]; long sno; float score; }STU;

main( ) {

STU a={\ d=a;

if(strcmp(a.name,b.name)>0) d=b; if(strcmp(c.name,d.name)>0) d=c; printf(\

}

四、程序填空

1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。 main ( )

{float x, amax, amin; scanf (“%f”, &x); amax=x; amin=x; while ( ① )

{if ( ② ) amax =x; if ( ③ ) amin =x; scanf (“%f”, &x); }

printf(“amax=%f, amin=%f\\n”, amax, amin); }

2、下面的程序是用指针来交换两个数据,请将缺省语句填上。

void exchange( int *p ,int *q) { int t;

t=*p; *p=*q; *q=t;} main()

{ int a,b,*x,*y; a=10;b=20; x=&a; ① ②

printf(“%d %d\\n”,*x, *y); }

五、程序设计题

有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数。 2、用自定义函数和数组求n个数的平均值,并用主函数调用 参考答案:

一、单项选择题

1、B 2、D 3、C 4、C 5、 A

6、A 7、D 8、C 9、C 10、D

11、D 12、B 13、B 14、C 15、 D 二、判断题

( √ ) 2、( × ) 3、( √ ) 4、( × ) 5、( × ) 6、 √ ) 7、( √ ) 8、( √ ) 9、( √ )10、( √ ) 11、(× )12、(× ) 13、(√ ) 14、(√ ) 15、(√ ) 三、写出程序的运行结果

1、 答案是:0,1,2,5 2、 答案是:2 5 8 11 14 3、答案是:12345678910 4、答案是:x

5、答案是:2002Shangxian