当前位置:文档之家› 大学计算机C语言期末考试复习试题及答案

大学计算机C语言期末考试复习试题及答案

大学计算机C语言期末考试复习试题及答案
大学计算机C语言期末考试复习试题及答案

第一套

一、判断共10题(共计10分)

1、函数即可以嵌套定义,又可以嵌套调用. N

2、unsigned 和void 在C中都是保留字. Y

3、表达式++i表示对变量i自加1. Y

4、C 语言源程序的基本结构单位是main 函数. N

5、字符常量的长度肯定为1. Y

6、char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样. Y

7、若有int i=10,j=2; 则执行完i*=j+8;后i 的值为28. N

8、int i,*p=&i;是正确的C说明。Y

9、While循环语句的循环体至少执行一次. N

10、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. Y

二、单项选择共30题(共计30分)

1、执行下面程序后,输出结果是()。

main() { a=45,b=27,c=0; c=max(a,b); printf("%d\n",c); }

int max(x,y) int x,y; { int z; if(x>y) z=x; elsez=y; return(z); }

A:45

2、下列数组说明中,正确的是()。

A:int array[][4];

3、下面有关for循环的正确描述是()

D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

4、以下程序的输出结果是().

main()

{int i,j,k,a=3,b=2;

i=(--a==b++)?--a:++b;

j=a++;k=b;

printf("i=%d,j=%d,k=%d\n",i,j,k);

}

D:i=1,j=1,k=3

5、若有下列定义,则对a 数组元素地址的正确引用是(). int a[5],*p=a;

C:*(a+2)

6、下列选项中正确的语句组是()。

D:char *s; s="Beijing";

7、若变量a,i 已正确定义,且i 已正确赋值,合法的语句是()

C:++i;

8、以下字符中不是转义字符的是()。

C:\c'

9、下列定义不正确的是()。

C:int max(x,y); int x,y; { }

10、char h,*s=&h;可将字符H通过指针存入变量h中的语句是().

B:*s='H';

11、设char 型变量x 中的值为10100111,则表达式(2+x)^(~3)的值是()。

D:01010101

12、设以下变量均为int 类型,表达式的值不为7的是()

C:x=6,x+1,y=6,x+y

13、若有说明int a[3][4];则对a数组元素的正确引用是().

C:a[1+1][0]

14、在C语言中,形参的缺省存储类是()。

A:auto

15、C语言源程序的基本单位是().

B:函数

16、C语言程序中必须有的函数是().

B:main

17、有定义:int a=8,b=5,c;, 执行语句c=a/b+0.4;后,c 的值为()

B:1

18、以下对二维数组a的正确说明是()。

C:double a[1][4]

19、以下标识符中,不能作为合法的C 用户定义标识符的是().

C:signed

20、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。

C:整型常量或整型表达式

21、以下标识符中,不能作为合法的C用户定义标识符的是()。

C:signed

22、已知year 为整型变量,不能使表达式(year%4==0&&year%100!=0)|| year%400==0的值为"的数据是().

A:1990

23、以下描述中,正确的是()。

C:C 源程序中凡是行首以#标识的控制行都是预处理指令

24、执行下列语句后的输出为()。

int j=-1;

if(j<=1) printf("****\n");

else printf("%%%%\n");

A:****

25、以下函数调用语句中实参的个数是().

exce((v1,v2),(v3,v4,v5),v6);

A:3

26、以下程序段的输出结果为()。for(i=4;i>1;i--) for(j=1;j

27、下列程序的输出结果是().

main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y)

{ case 0:a++;break; case 1:b++;break; }

case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } B:a=2,b=1

28、C 语言中运算对象必须是整型的运算符是()。

A:%=

29、以下能对二维数组a进行正确初始化的语句是()。

B:int a[][3]={{1,2,3},{4,5,6}};

30、以下数组定义中不正确的是().

D:int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

三、程序填空共2题(共计24分)

第1题(12.0分)题号:417

/*-------------------------------------------- 【程序填空】-----------------------------------------------

题目:利用全局变量计算长方体的体积及三个面的面积。------------------------------*/

int s1,s2,s3;

int vs(int a,int b,int c)

{int v;

/***********SPACE***********/

v=【?】;

s1=a*b;

/***********SPACE***********/

s2=【?】;

s3=a*c;

return v;

}

main()

{int v,l,w,h;

clrscr();

printf("\ninput length,width and

height:");

/***********SPACE***********/

scanf("%d%d%d",【?】,&w,&h);

/***********SPACE***********/

v=【?】;

printf("v=%d s1=%d s2=%d

s3=%d\n",v,s1,s2,s3);

getch();

}

答案1:a*b*c =========或========= a * b * c

答案2:b*c =========或========= b * c

答案3:&l

答案4 :vs(l,w,h) =========或========= vs( l , w , h )

第2题(12.0分)题号:441

/*-------------------------------------------------- 【程序填空】--------------------------------------------------

题目:给定程序中函数fun 的功能是:从低位开始取出长整型变量s 中奇数位上的数,依次构成一个新数放在t 中。------------------------------------------------------

-*/

#include

#include

void fun (long s, long *t)

{ long sl=10;

s /= 10;

/***********SPACE***********/

*t = s 【?】10;

while(s>0)

/***********SPACE***********/

{ s = 【?】;

/***********SPACE***********/

*t = s%10*sl【?】;

/***********SPACE***********/

sl = sl 【?】10;

}

}

main()

{ long s, t;

clrscr();

printf("\nPlease enter s:"); scanf("%ld",

&s);

fun(s, &t);

printf("The result is: %ld\n", t);

}

答案:

=======(答案1)======= % =======(答案2)======= s/100

=======(答案3)======= + *t =======(答案4)======= *

四、程序改错共2题(共计22分)

第1题(11.0分)题号:383

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:给定程序的功能是:读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入I am a student to take the examination.,则应输出"I aM A studenT tO takE thE examination."。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------

*/

#include "conio.h" #include "stdio.h" #include "ctype.h" #include "string.h"

up1st ( char *p )

{

/**********FOUND**********/

integer k = 0;

for ( ; *p; p++ )

if ( k )

/**********FOUND**********/

{ if ( *p = ' ' )

{ k = 0;

/**********FOUND**********/

*(p -1 ) = toupper( *( p - 1 );

}

}

else if ( *p != ' ' ) k = 1;

*( p-1 ) = toupper( *(p-1) );

}

main( )

{ char chrstr[81];

printf( "\nPlease enter a string: " ); gets

( chrstr );

printf( "\n\nBefore changing:\n %s",

chrstr );

up1st( chrstr );

printf( "\nAfter changing:\n %s", chrstr );

}

答案:

=======(答案1)======= int k=0;

=======(答案2)======= { if ( *p == ' ' )

=======(答案3)======= *(p -1 ) = toupper( *( p - 1 ));

第2题(11.0分)题号:431

/*-------------------【程序改错】--------题目:编写函数fun 求1000以内所有8的倍数之和。--------注意:不可以增加或删除程序行,也不可以更改程序的结构。-------------------------------*/ #include"stdio.h"

#define N 1000

main()

{int sum;

sum=fun(8);

printf("%d 以内所有%d 的倍数之和为:%d\n",N,8,sum);

getch();

}

int fun(int m)

{

/**********FOUND**********/

int s=0;i;

/**********FOUND**********/

for(i=1;i>N;i++)

/**********FOUND**********/

if(i/m==0)

s+=i;

return s; }

答案:=======(答案1)======= int s=0 , i ;

=======(答案2)======= for(i=1;i

=======(答案3)======= if(i%m==0)

五、程序设计共1题(共计14分)

第1题(14.0分)题号:390

/*------------------------------------------------ 【程序设计】--------------------------------------------------

题目:求一批数中最大值和最小值的差。--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函

数的花括号中填入所编写的若干语句。------------------------------------------------

*/

int max_min(int a[],int n)

{ /**********Program**********/

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

#define N 30 #include "stdlib.h" #include "stdio.h" main() {

int a[N],i,k;

clrscr();

for(i=0;i

a[i]=random(51)+10;

for(i=0;i

{printf("%5d",a[i]);

if((i+1)%5==0) printf("\n"); }

k=max_min(a,N);

printf("the result is:%d\n",k);

yzj();

getch(); }

yzj() {

FILE *IN,*OUT;

int n;

int i[30];

int o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error"); }

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error"); }

for(n=0;n<5;n++)

{ fscanf(IN,"%d",&i[n]); }

o=max_min(i,5);

fprintf(OUT,"%d\n",o);

fclose(IN);

fclose(OUT);

}

答案:----------------------

int i,max,min;

max=min=a[0];

for(i=1;i

if(a[i]>max) max=a[i];

else if(a[i]

return(max-min);

----------------------

第二套

一、判断共10题(共计10分)

1、7&3+12的值是15。N

2、在C 语言中,整型数据在内存中占2个字节. N

3、C 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。Y

4、将一个字符串"abc"赋给字符串变量str 的方法是str="abc". N

5、以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关. N

6、a=(b=4)+(c=6) 是一个合法的赋值表达式。Y

7、C 语言规定:在一个源程序中,main 函数的位置必须在最开始. N

8、C 程序中的一个变量可以被定义为两个或多个不同的类型. N

9、若a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。Y

10、对二维数组a 来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的. N

二、单项选择共30题(共计30分)

1、以下描述中,正确的是()。

C:C 源程序中凡是行首以#标识的控制行都是预处理指令

2、设C 语言中,int 类型数据占4个字节,则short 类型数据占().

B:2个字节

3、以下各选项企图说明一种新的类型名,其中正确的是()。

C:typedef int v3;

4、以下运算符中,优先级最高的运算符是()。

C:!

5、以下程序的输出结果是()。main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b;

j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); }

D:i=1,j=1,k=3

6、以下程序段的执行结果是(). double x;x=218.82631; printf("%-6.2e\n",x);

C:输出为2.2e+02

7、以下程序的运行结果是()。

main() { int n; for(n=1;n<=10;n++) { if(n%3==0) continue; printf("%d",n); } } A:12457810

8、下列程序的输出结果为()。

main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf("%f\n",x); }

A:27.000000

9、设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为()。

D:double

10、下列各m 的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。B:23

11、若已定义x 为int 类型变量,下列语句中说明指针变量p的正确语句是(). C:int *p=&x;

12、以下正确的说法是:在C语言中().

A:实参和与其对应的形参各占用独立的存储单元

13、sizeof(float)是().

C:一个整型表达式

14、以下对二维数组a的正确说明是().

C:double a[1][4]

15、若有以下定义,则能使值为3的表达式是() int k=7,x=12;

D:(x%=k)-(k%=5)

16、C 语言允许函数类型缺省定义,此时函数值隐含的类型是()。

B:int

17、先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(). A:c='a';

18、经过以下语句定义后, 表达式z+=x>y?++x:++y的值为(). int x=1,y=2,z=3; C:6

19、用户定义的函数不可以调用的函数是()。

C:main函数

20、以下标识符中,不能作为合法的C 用户定义标识符的是().

B:void

21、下面程序段的输出结果为() int a,b;b=(a=3*5,a*4,a*5); printf("%d",b);

B:75

22、若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(). A:2.500000

23、若有说明: int a[][4]={0,0};则下面不正确的叙述是().

D:有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

24、若有说明:int i, j=2,*p=&i;,则能完成i=j 赋值功能的语句是().

B:*p=*&j;

25、与实际参数为实型数组名相对应的形式参数不可以定义为().

C:float a;

26、int i,j,a[2][3];按照数组a 的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数()。D:for(i=1;i<=6;i++)a[i][i]=i;

27、下列运算符中,不属于关系运算符的是().

D:!

28、C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

B:int

29、若有下列定义,则对a 数组元素地址的正确引用是()。int a[5],*p=a;

C:*(a+2)

30、下列程序段的输出结果为(). int a=7,b=9,t; t=a*=a>b?a:b; printf("%d",t);

C:63

三、程序填空共2题(共计24分)

第1题(12.0分)题号:591

/*如果a>b,就将两个数的位置调换;否则,保持不变。*/

main()

{

int a,b,temp;

printf("\nPlease input two int number:");

scanf("%d%d",&a,&b);

if(a>b)

{

/***********SPACE***********/

【?】;

/***********SPACE***********/

a=【?】;

b=temp;

}

printf("%d,%d\n",a,b); }

=======(答案1)======= temp=a

=======(答案2)======= b

第2题(12.0分)题号:30

/*--------------------- 【程序填空】------------------------

题目:以下程序的功能是用冒泡法对数组a 进行由小到大的排序。-------------------------------*/ void fun(int a[],int n)

{ int i,j,t;

/***********SPACE***********/ for (j=0; 【?】;j++) /***********SPACE***********/ for (i=0; 【?】;i++) /***********SPACE***********/ if(【?】) {t=a[i];a[i]=a[i+1];a[i+1]=t;} } main()

{ int i,a[10]={3,7,5,1,2,8,6,4,10,9}; /***********SPACE***********/ 【?】;

for(i=0;i<10;i++) printf("%3d",a[i]); } =======(答案1)======= j<=n-1 =========或========= n-1>=j

=========或========= j<=-1+n =========或========= -1+n>=j

=========或========= jj

=======(答案2)======= ii

=========或========= ii

=========或========= i<=n-j-2 =========或========= i<=n-2-j

=======(答案3)======= a[i]>a[ i + 1 ] =========或========= a[ i + 1 ]

=======(答案4)======= fun(a,10)

四、程序改错共2题(共计22分)

第1题(11.0分)题号:417

/*-------------- 【程序改错】---------------------题目:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。--------------------------------------*/ #include "stdio.h"

main()

{int i,a,n=1;

/**********FOUND**********/

while(n<7)

{

do

{

scanf("%d",&a);

}

/**********FOUND**********/

while(a<1&&a>50);

/**********FOUND**********/

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

printf("*");

printf("\n");

n++;

}

getch();

}

(答案1)======= while(n<=7) =========或========= while(n<8)

(答案2)======= while(a<1||a>50); =========或=========while(a>50||a<1);

(答案3)======= for(i=1;i<=a;i++)

第2题(11.0分)题号:429

/*----------------------【程序改错】---------题目:求0-7这8个数字所能组成的奇数个数。

----------注意:不可以增加或删除程序行,也不可以更改程序的结构。----------*/

#include "stdio.h"

main() { /**********FOUND**********/

long sum=4;s=4;

int j;

for(j=2;j<=8;j++)

/**********FOUND**********/

{printf("\n%d",sum); /**********FOUND**********/

if(j<2) s*=7; else s*=8; sum+=s;} printf("\nsum=%ld",sum); getch(); } =======(答案1)======= long sum=4,s=4;

=======(答案2)======= { printf("\n%ld",sum);

=======(答案3)======= if(j<=2)

=========或========= if(j<3)

五、程序设计共1题(共计14分)

第1题(14.0分)题号:49

/*--------------【程序设计】------------------ 题目:请用for循环编写编写函数fun,函数的功能是:计算n门课程的平均值,计算结果作为函数值返回。

例如,若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.600000。--------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。------------------------------------------------*/

#include "stdio.h" float fun(int a[],int n)

{

/**********Program**********/

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

}

main()

{ int a[]={92,76,69,58,88};

printf("y=%f\n",fun(a,5)); yzj(); }

yzj() { FILE *IN,*OUT; int iIN[10],i,j; float fOUT; IN=fopen("18.in","r");

if(IN==NULL) {printf("Please Verify The Currernt Dir..ItMay Be Changed"); } OUT=fopen("18.out","w"); if(OUT==NULL)

{printf("Please Verify The Current Dir..It May Be Changed"); } for(j=0;j<10;j++) { for(i=0;i<5;i++) fscanf(IN,"%d",&iIN[i]);

fOUT=fun(iIN,5); fprintf(OUT,"%f\n",fOUT); } fclose(IN); fclose(OUT); }

答案:---------------------- int i;

float y=0;

for(i=0;i

y+=a[i];

y=y/n;

return y;

----------------------

第三套

一、判断共10题(共计10分)

1、在C语言中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5; Y

2、表达式1/4+2.75的值是3. N

3、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. Y

4、C 语言规定:在一个源程序中,main 函数的位置必须在最开始. N

5、for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3). Y 6将一个字符串"abc"赋给字符串变量str 的方法是str="abc". N

7、关系运算符<= 与== 的优先级相同。N

8、break 语句可用于循环体内,它将退出该重循环. Y

9、语句char *p="Turbo C"的含义是将字符串赋给字符型指针变量p. N

10、在标准C中,while和do_while的功能完全相同. N

二、单项选择共30题(共计30分)

1、C 语言允许函数类型缺省定义,此时函数值隐含的类型是().

B:int

2、以**于运算符优先顺序的描述中正确的是()。

C:赋值运算符<逻辑运算符<关系运算符<算术运算符

3、关于return 语句,下列正确的说法是().

C:可以在同一个函数中出现多次

4、下列定义不正确的是()。

C:int max(x,y); int x,y; { }

5、C 语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为().

C:int

6、若有说明:int *p,m=5,n;以下正确的程序段是().

D:p=&n;*p=m;

7、设以下变量均为int 类型,则值不等于7的表达式是().

C:(x=6,x+1,y=6,x+y)

8、若a 是float 型变量,b 是unsigned 型变量,以下输入语句中合法的是()。

C:scanf("%f%3o",&a,&b);

9、下列选项中,合法的C语言关键字是(). D:default

10、对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是()。A:.

11、C 语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()

C:必须为字母或下划线

12、以下程序的输出结果为()。

main() {int i=010,j=10; printf("%d,%d\n",++i,j--); }

B:9,10

13、若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句()。A:scanf("%d",p);

14、关于指针概念说法不正确的是()。

D:指针变量可以由整数赋,不能用浮点赋

15、表达式,0x13&0x17的值是()。

B:0x13

16、int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为().

B:2

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

main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); } D:i=1,j=1,k=3

18、下列语句中,不正确的是()。

C:static char a[2]={'1','2','3'};

19、以下对枚举类型名的定义中正确的是()。

B:enum a {sum=9,mon=-1,tue};

20、以下正确的描述是:在C语言程序中()。

B:函数的定义不可以嵌套,但函数的调用可以嵌套

21、以下描述中正确的是().

C:在do-while 循环体中,一定要有能使while后面表达式的值变为零("假")的操作

22、下列表达式中,可作为C合法表达式的是().

B:(3,2,1,0)

23、设有int x=11; 则表达式(x++ * 1/3) 的值是()。

A:3

24、putchar 函数可以向终端输出一个()。

D:字符或字符型变量值

25、有如下定义#define D 2 int x=5;float y=3.83; char c=′D′; 则下面选项中错误的是() D:D++;

26、若有下列定义,则对a 数组元素地址的正确引用是()。int a[5],*p=a;

C:*(a+2)

27、下列数据中,不合法的C 语言实型数据的是( )

C:2.1e3.5

28、在位运算中,操作数每右移一位,其结果相当于().

B:操作数除以2

29、在位运算中,操作数每左移一位,其结果相当于()。

A:操作数乘以2

30、若ch为char 型变量,k为int 型变量(已知字符a的ASCII 十进制代码为97),则以下程序段的执行结果是()。ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k); C:61,141,k=%d

三、程序填空共2题(共计24分)

第1题(12.0分)题号:605

/*用辗转相除法求解两个整数的最大公约数。*/

main()

{

int a,b,r;

scanf("%d%d",&a,&b);

/***********SPACE***********/

【?】;

while(r!=0)

{

a=b;

/***********SPACE***********/

【?】;

r=a%b;

}

printf("%d",b);

}

答案:

=======(答案1)======= r=a%b

=======(答案2)======= b=r

第2题(12.0分)题号:606

/*输出九九乘法表*/

/*1*1=1 1*2=2 1*3=3 1*4=4 .....1*9=9*/

/*2*1=1 2*2=4 2*3=6 2*4=8......2*9=18*/

main()

{

int i,j;

/***********SPACE***********/

for(【?】;i<=9;i++)

{

for(j=1;j<=9;j++)

/***********SPACE***********/

printf("%d*%d=%d",i,j,【?】);

printf("\n");

}

}

=======(答案1)======= i=1

=======(答案2)======= i*j

四、程序改错共2题(共计22分)

第1题(11.0分)题号:441

/*----------------【程序改错】------------题目:输入字符序列,字符序列以特殊字符“#”结束。程序从前向后依次读入字符,并翻译出新的字符输出。翻译的规则是:如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入的字符不是数字符,则输出该字符。输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。翻译直至当前读入的字符为字符'#',结束翻译和输出. --------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。----------------*/

#include

void main()

{

char ch,nch;

int count;

int k;

printf("Enter string.\n");

scanf("%c",&ch);

/**********FOUND**********/

while(ch='#')

{

if(ch>='0'&&ch<='9')

{

/**********FOUND**********/

count=ch-'0'-1;

scanf("%c",&nch);

for(k=0;k

printf("%c",nch);

}

else

/**********FOUND**********/

printf("%f",ch);

printf(" ");

scanf("%c",&ch);

}

printf("#\n");

}

答案:

=======(答案1)======= while(ch!='#')

=======(答案2)======= count=ch-'0'+1;

=======(答案3)======= printf("%c",ch);

第2题(11.0分)题号:5

/*-------------------- 【程序改错】---------------------- 题目:将一个字符串中第m 个字符开始的全部字符复制成为另一个字符串。程序中共有4条错误语句,请改正错误------------ --- 注意:不可以增加或删除程序行,也不可以更改程序的结构-------------------*/

#include

void strcopy(char *str1,char *str2,int m)

/**********FOUND**********/

char p1,p2;

int i,j;

/**********FOUND**********/

= str1+m;

p2=str2;

/**********FOUND**********/

if(*p1);

*p2++=*p1++;

*p2='\0';

}

main()

{

int i,m;

char *p1,*p2,str1[80],str2[80];

p1=str1;

p2=str2;

gets(p1);

scanf("%d",&m);

/**********FOUND**********/

strcat(str1[0],str2[0],m);

puts(p1);puts(p2);

}

答案:

=======(答案1)======= { char *p1,*p2;

=========或========= { char *p2,*p1;

=======(答案2)======= p1= str1 + m -1;

=========或========= p1=-1+ str1 + m ;

=======(答案3)======= while(*p1)

=======(答案4)======= strcopy(str1,str2,m);

五、程序设计共1题(共计14分)

第1题(14.0分)题号:377

/*---------【程序设计】--------题目:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序.--------- 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。-----*/ #include void swap(int *a,int *b)

{ /**********Program**********/ /********** End **********/ }

main() {int x,y,z;

scanf("%d%d%d",&x,&y,&z);

if(x

if(x

if(y

printf("%3d%3d%3d",x,y,z);

yzj();

getch(); }

yzj() {

FILE *IN,*OUT;

int m,n;

int i[2];

int o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error"); }

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error"); }

for(n=0;n<3;n++) {

for(m=0;m<2;m++) {

fscanf(IN,"%d",&i[m]); }

swap(&i[0],&i[1]);

fprintf(OUT,"%d\n",i[0]);

fprintf(OUT,"%d\n",i[1]); }

fclose(IN);

fclose(OUT); }

答案:----------------------

int k;

k=*a;

*a=*b;

*b=k;

--------------------

第四套

一、判断共10题(共计10分)

1、字符串只能存放在字符型数组中. Y

2、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的。N

3、在标准C中,"="是判断两个数是否相等. N

4、函数调用可以出现在执行语句中,但不能出现在表达式中. N

5、strcat(s1,s2)函数是将字符串s1复制到字符串s2中N

6、语句scanf("%7.2f",&a);是一个合法的scanf 函数。N

7、函数若无返回值,则它一定无形参. N

8、参加位运算的数据可以是任何类型的数据。N

9、静态外部变量只在本文件内可用. Y

10、C语言是一种结构化程序设计语言. Y

二、单项选择共30题(共计30分)

1、语句while(!E);中的表达式!E 等价于().

A:E==0

2、若a=1,b=2则a|b的值是()。

D:3

3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。

C:整型常量或整型表达式

4、以下程序的输出结果为()。

main() {int i=010,j=10; printf("%d,%d\n",++i,j--); }

B:9,10

5、设int x=1, y=1; 表达式(!x||y--)的值是().

B:1

6、以下对枚举类型名的定义中正确的是()。

B:enum a {sum=9,mon=-1,tue};

7、若k 为int 型变量,则以下程序段的执行结果是()。k=-8567; printf("|%06D|\n",k); B:输出为|%06D|

8、若希望当A 的值为奇数时,表达式的值为"真",A 的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是().

C:!(A%2)

9、在C语言中,能代表逻辑值“真”的是()。

D:非0的数

10、能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是()。

A:a>=10 or a<=0

11、以下运算符中,优先级最高的运算符是()。

B:++

12、下列字符序列中,可用作C标识符的一组字符序列是()。

D:D56,r_1_2,name,_st_1

13、下列标识符中,不合法的C 语言用户自定义标识符是().

B:enum

14、下列程序段的输出结果为(). float k=0.8567;

printf("%06.1d%%",k*100);

B:0085.7%

15、C语言中不可以嵌套的是()。

B:函数定义

16、表达式,0x13&0x17的值是()。

A:0x17

17、已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(). char a='a'; a--; printf ("%d,%c\n",a+'2'-'0',a+'3'-'0');

C:98,c

18、若有下列定义,则对a 数组元素地址的正确引用是()。int a[5],*p=a; C:*(a+2)

19、下列定义数组的语句中正确的是().

A:#define size 10 char str1[size],str2[size+2];

20、关于return 语句,下列正确的说法是()。

C:可以在同一个函数中出现多次

21、列语句后变量x和y的值是(). y=10;x=y++;

C:x=10,y=11

22、据中,不正确的数值或字符常量是()。

A:8.9e1.2

23、序段的输出结果为()。float x=213.82631; printf("%3d",(int)x);

C:213

24、算符中,优先级最高的运算符是()。

D:()

大学计算机考试题库

第一章 1关于信息社会,下列说法不正确的是( ) A.在信息社会,信息、知识成为重要的生产力要素。 B.信息社会中所有的工业生产都是自动化的。 C.在信息社会,信息技术催生大批新兴产业,同时,传统产业也普遍实行技术改造。 D.计算机的发明是第三次科技革命的重要标志,是人类文明史上继蒸汽技术革命和电力技术革命之后科技领域的又一次重大飞跃。 2二进制是由下列哪位科学家首先提出来的() A.布尔 B.巴贝奇 C.莱布尼兹 D.图灵 3在人体器官中,下列说法不正确的是() A.大脑的思维是对外部事物的直接反应。 B.人体器官可分为直接感觉器官和间接感觉器官。 C.大脑是人体的思维器官。 D.大脑是一种间接感觉器官。 4对于计算思维,下列说法错误的是() A.计算思维是计算机科学家独有的思维方式。 B.计算思维的产生与信息社会发展的时代背景有关,工具影响我们的思维方式。 C.计算思维是一种借助于计算能力进行问题求解的思维和意识。 D.计算思维的本质是抽象和自动化。 5关于信息技术(Information Technology,IT)下列说法正确的是 A.在信息社会,所有的信息处理中都用到了信息技术。 B.在信息处理的每一个环节,都必须使用信息技术。 C.信息技术无法对工业社会形成的传统设备进行技术改造,成为智能设备。 现代信息技术是指以微电子技术、计算机技术和通信技术为特征的技术。D. 6多选(2分) 关于思维,下列说法正确的是() A.思维是人类凭借知识、经验对客观事物进行的间接的应。 B.思维是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程。 C.思维是人类的大脑对外部客观世界概括的和间接的反应。 D.思维是大脑活动,与工具无关。 7多选 下列内容属于信息素养(Information Literacy)的是() A.信息意识 B.信息能力 C.信息道德 D.信息知识 8多选(2分)关于推理,下列说法正确的是() A.推理是由已知判断,根据一定的思维规则导出一个或一组新的判断的过程。 B.归纳推理比演绎推理更具有说服力。 C.三段论是一种演绎推理形式。

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

c语言期末复习试题(附答案)

试卷编号:11201 所属语言:C语言 试卷方案:C语言期末考试 试卷总分:100分 共有题型:4种 一、单项选择共30题(共计60分) 第1题(2.0分) 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 第2题(2.0分) 已知int i=5,执行语句i+=++i后, i的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(2.0分) 以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A:注释语句书写位置错误 B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法 D:计算圆面积的赋值语句中使用了非法变量 第4题(2.0分) "\\\″ABC\″\\″的长度是( B ). A:11 B:7 C:5 D:3 第5题(2.0分) 已知int j,i=1;,执行语句j=–i++;后,j的值是( C ). A:1 B:2 C:-1 D:-2 第6题(2.0分) 有以下程序: #include void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a–2; }while(a!=n); printf("%d\n", s); } 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1 B:-3

2019年大学计算机基础试题及答案

计算机基础试题及答案 一、选择题 1. 冯·诺依曼计算机工作原理的设计思想是。(B) A. 程序设计 B. 程序存储 C. 程序编制 D. 算法设计 2. 计算机的逻辑判断能力决定于(C) A. 硬件 B. 体积 C. 编制的软件 D. 基本字长 3. 构成计算机物理实体的部件称为(C) A. 计算机软件 B. 计算机程序 C. 计算机硬件 D. 计算机系统 4. 微型计算机的微处理器芯片上集成了(A) A. 控制器和运算器 B. CPU和RAM C. 控制器和RAM D. 运算器和I/O接口

5. 计算机中运算器的主要功能是完成。(C) A. 代数和四则运算 B. 代数和逻辑运算 C. 算术和逻辑运算 D. 算术和代数运算 6. 将十进制数93转换为二进制数为(D) A.1110111 B.1110101 C.1010111 D.1011101 7. 具有多媒体功能的微型计算机系统,通常都配有CD-ROM,这是一种 (D) A. 只读内存储器 B. 只读大容量光盘 C. 只读硬盘存储器 D. 只读光盘存储器 8. 在Windows XP中,可以同时运行多少个程序。(D) A)1 B)2 C)10 D)多个 9. 在Windows XP中,如果进行了多次剪切操作,则剪贴板中的内容是 ( B ) A.第一次剪切的内容 B.最后一次剪切的内容 C.所有剪切的内容 D.什么内容也没有 10. 在Windows XP中,下面关于文件夹的描述正确的是 ( A ) A.文件夹中可以包含子文件夹和文件 B.文件夹中只能包含子文件夹 C.文件夹中只能包含文件 D.文件夹中不能包含子文件夹和文件 11. 当已选定文件夹,下列操作中不能删除该文件夹的是( D )

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

大学计算机考试题库里的全套习题解析

大机题库里的全套习题 一、单选题练习 1.完整的计算机系统由(C 组成。 A . 运算器、控制器、存储器、输入设备和输出设备 B .主机和外部设备 C .硬件系统和软件系统 D .主机箱、显示器、键盘、鼠标、打印机 2.以下软件中, (D 不是操作系统软件。 A . Windows xp B . unix C. linux D . microsoft office 3.用一个字节最多能编出(D 不同的码。 A. 8 个 B. 16个 C. 128个 D. 256 个 4.任何程序都必须加载到(C 中才能被CPU 执行。 A. 磁盘 B. 硬盘 C. 内存 D. 外存 5.下列设备中,属于输出设备的是(A 。 A .显示器 B . 键盘 C .鼠标 D .手字板 6.计算机信息计量单位中的K代表(B。 A. 102 B. 210 C. 103 D. 28 7.RAM 代表的是(C 。 A. 只读存储器 B. 高速缓存器 C. 随机存储器 D. 软盘存储器

8.组成计算机的CPU 的两大部件是(A A .运算器和控制器B. 控制器和寄存器C .运算器和内存D. 控制器和内存 9.在描述信息传输中bps表示的是(D。 A .每秒传输的字节数 B .每秒传输的指令数 C .每秒传输的字数 D .每秒传输的位数 10.微型计算机的内存容量主要指(A 的容量。 A. RAM B. ROM C. CMOS D. Cache 11.十进制数27对应的二进制数为( D 。 A . 1011 B. 1100 C. 10111 D. 11011 12.Windows 的目录结构采用的是(A 。 A?树形结构B.线形结构C .层次结构D .网状结构 13.将回收站中的文件还原时,被还原的文件将回到(D 。 A .桌面上 B . “我的文档”中 C .内存中 D .被删除的位置 14.在Windows 的窗口菜单中, 若某命令项后面有向右的黑三角, 则表示该命令项(A 。A .有下级子菜单B .单击鼠标可直接执行 C .双击鼠标可直接执行 D .右击鼠标可直接执行 15.计算机的三类总线中,不包括(C。 A?控制总线B.地址总线C.传输总线D.数据总线 16.操作系统按其功能关系分为系统层、管理层和(D 三个层次 A .数据层B.逻辑层C.用户层D.应用层

本科C语言期末考试复习做完必过试题(含答案和解析)

本科C语言期末复习做完必过试题(含解答和解析) 题型一:单项选择题 (1) 题型二:读程序 (9) 题型三:程序填写 (42) 题型四:程序改错 (46) 题型五:编程题 (50)

题型一:单项选择题 1.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 2.C语言程序从(C)开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 解析:选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 解析:选项A中的“%” ,选项B中“+”不满足;选项D中的标识符以数字开头不满足 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 解析:选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3) 9.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 10.在C语言程序中,表达式5%2的结果是C。

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

大学C语言期末考试习题集(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

C语言期末考试全部知识点复习

C语言知识点复习资料 考试就是难得得训练自己得机会,在特定得时间、特定得地点、特定得气氛下,您需要调动各方面得能力。而在每一次考试中,我都下意识地应用自己摸索出来得“目标控制法”,做到了每次考试有有收获与进步。每次考试前,我都会在一张白纸上写满通过本次考试要达到得目标:要注意克服哪些易犯得错误,尤其就是要克服前几次考试中暴露出来得共性得失误;要积累哪些经验,应用哪些技巧,比如选择题中得特征值法;要在多长得时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中得选择题与填空题;要培养锻炼哪些考试应试得心理素质等。 也就就是说,我们要把考试瞧成就是一个完整得流程,包括考前准备、考场发挥与考后调整三个阶段。同学中存在得误区往往就是只注意考前得准备与考场得发挥两个阶段,对考后调整注意不够。事实上,高考之前得每一次模拟考试,最重要得就就是考试后得总结与反思,只有这样,才能认识到自己得薄弱环节,不断提高考试能力。所以,有心得同学一定要注意做好健全得考后调整,不断提高自己得实力。 总体上必须清楚得: 1.程序中基本得控制结构就是三种: 顺序结构、选择结构(分支结构)、循环结构。 2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3.计算机得数据在电脑中保存就是以二进制得形式、数据存放得位置就就是它得地址、 4.bit就是位就是指为0 或者1。 byte 就是指字节, 一个字节 = 八个位、5、编译预处理不就是C语言得一部分,不占运行时间,不要加分号。(常考!) #define PI 3、1415926; 这个写法就是错误得,一定不能出现分号。 6、每个C语言程序中main函数就是有且只有一个。 7、用C语言编写得程序称为源程序,扩展名就是、c。C程序必须经过编辑、 编译、链接、运行四个步骤才可得到运行结果。注意、c与、obj文件时无法运行得,只有、exe文件才可以运行。(常考!) 8、 C语言书写格式就是自由得,每行可以写多个语句,一条语句也可以写在多行。 9、一个C语言程序有且只有一个main函数,就是程序运行得起点。

大学大一C语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

C语言期末考试复习材料.doc

1.以下关于算法的描述不正确的是—B。 A.任何一个问题,它的实现算法是唯一的 B.描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等 C.算法的最终实现是计算机程序 D.正确性和清晰易憧性是一个好算法的基本条件 2.下面是一个加法程序,指出存在的逻辑错误和语法错误。 /*求整数a和b的和*/ Int main() { int a, b; a=8; b=2000; print ("%d\n〃, a+b); } 3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为—A_ A.main B. MAIN C. name D. function 4.以下叙述不正确的是—A o A.C程序书写格式规定,一行内只能写一个语旬 B.main()函数后面有一对花括号,花括号内的部分称为函数体 C.—个C程序必须有main。函数 D.C规定函数内的每个语句以分号结束 5.以下各标识符中,合法的用户标识符为_B o A.A#C B. mystery C. main D. ab* 6.己知求解某问题的算法如下: ⑴输入a、b、c三个数。 ⑵ 将a和b比较,较大者放在a中,小者放在b中。 (3)将a和c比较,较大者放在a中,小者放在c中。 (4)将b和c比较,较大者放在b中,小者放在c中。 (5)依次输出a、b、Co 请根据上述算法描述,把算法的功能表达出来。 【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。 7.一个C语言程序可以包括多个函数,程序总是按照如下A 一所描述的方式执 行当前的程序。 A.从木程序的mainO函数开始,到木程序文件的最后一个函数结束。 B.从木程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C.从main。函数开始,到main()函数结束。 D.从本程序文件的第一个函数开始,到本程序main。函数结束。 8.以下叙述正确的是__D o A.在C程序中,main ()函数必须位于程序的最前面。 R. C程序的每行中只能写一条语句。 C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 D?C语言木身没有输入输出语句。

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

大学计算机基础试题及答案(完整版)

大学计算机基础模拟题 一、单选题 1、完整的计算机系统由(C)组成。 A、运算器、控制器、存储器、输入设备和输出设备 B、主机和外部设备 C、硬件系统和软件系统 D、主机箱、显示器、键盘、鼠标、打印机 2、以下软件中,(D)不是操作系统软件。 A、Windowsxp B、unix C、linux D、microsoft office 3、用一个字节最多能编出(D)不同的码。 A. 8个 B. 16个 C. 128个 D. 256个 4、任何程序都必须加载到(C)中才能被CPU执行。 A. 磁盘 B. 硬盘 C. 内存 D. 外存 5、下列设备中,属于输出设备的是(A)。 A、显示器 B、键盘 C、鼠标 D、手字板 6、计算机信息计量单位中的K代表(B)。 A. 102 B. 210 C. 103 D. 28 7、RAM代表的是(C)。

A. 只读存储器 B. 高速缓存器 C. 随机存储器 D. 软盘存储器 8、组成计算机的CPU的两大部件是(A)。 A、运算器和控制器 B. 控制器和寄存器 C、运算器和内存 D. 控制器和内存 9、在描述信息传输中bps表示的是(D)。 A、每秒传输的字节数 B、每秒传输的指令数 C、每秒传输的字数 D、每秒传输的位数 10、微型计算机的内存容量主要指(A )的容量。 A.RAM B.ROM C.CMOS D.Cache 11、十进制数27对应的二进制数为( D )。 A.1011 B. 1100 C. 10111 D. 11011 12、Windows的目录结构采用的是(A)。 A、树形结构 B、线形结构 C、层次结构 D、网状结构 13、将回收站中的文件还原时,被还原的文件将回到(D)。 A、桌面上 B、“我的文档”中 C、内存中 D、被删除的位置

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

《大学计算机基础》试题题库及答案

《大学计算机基础》试题题库及答案 一、单选题练习 1.完整的计算机系统由( C )组成。 A.运算器、控制器、存储器、输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D.主机箱、显示器、键盘、鼠标、打印机 2.以下软件中,( D )不是操作系统软件。 A.Windows xp B.unix C.linux D.microsoft office 3.用一个字节最多能编出( D )不同的码。 A. 8个 B. 16个 C. 128个 D. 256个 4.任何程序都必须加载到( C )中才能被CPU执行。 A. 磁盘 B. 硬盘 C. 内存 D. 外存 5.下列设备中,属于输出设备的是( A )。 A.显示器 B.键盘 C.鼠标 D.手字板6.计算机信息计量单位中的K代表( B )。 A. 102 B. 210 C. 103 D. 28 7.RAM代表的是( C )。 A. 只读存储器 B. 高速缓存器 C. 随机存储器 D. 软盘存储器 8.组成计算机的CPU的两大部件是( A )。 A.运算器和控制器 B. 控制器和寄存器 C.运算器和内存 D. 控制器和内存 9.在描述信息传输中bps表示的是( D )。 A.每秒传输的字节数 B.每秒传输的指令数 C.每秒传输的字数 D.每秒传输的位数 10.微型计算机的内存容量主要指( A )的容量。 A. RAM B. ROM C. CMOS D. Cache 11.十进制数27对应的二进制数为( D )。 A.1011 B. 1100 C. 10111 D. 11011 12.Windows的目录结构采用的是( A )。 A.树形结构 B.线形结构 C.层次结构 D.网状结构13.将回收站中的文件还原时,被还原的文件将回到( D )。 A.桌面上 B.“我的文档”中 C.内存中 D.被删除的位置14.在Windows 的窗口菜单中,若某命令项后面有向右的黑三角,则表示该命

c语言期末考试练习题1(含答案)

一、单项选择题(6小题,每小题3分,共18分) 1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 A、extern B、register C、auto D、static 2、下面4个选项中,是合法转义字符的选项是( )。 A、'\" B、'\' C、'\018' D、'\\0' '\\' '\017' '\f' '\101' '\n' '\''' 'xab' 'x1f' 3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。 A、–10 B、0abc C、0010 D、0a12 0x8f –017 –0x11 – –011 0xc 0xf1 –0xa 4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( ) A、# define POWER(x) □□x * x B、# define POWER(x) □□(x) * (x) C、# define POWER(x) □□(x * x) D、# define POWER(x) □□((x) * (x)) 5、以下程序段( ) x= –1; do { x=x*x;} while (!x); A、是死循环 B、循环执行二次 C、循环执行一次 D、有语法错误 6、下面程序的运行结果是( ) # include int main( ) { int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if (j%2) continue; x++; } x++; } printf ("x= %d \n",x); return 0; } A、x=4 B、x=8 C、x=6 D、x=12 二、填空题(7小题,每小题3分,共22分) 1、下面程序段的运行结果是( )。 char ch[ ]=''600";int a,s=0;

大学计算机基础试题及答案完整版

大学计算机基础试题及答案(完整版) 一、单选题 1、完整的计算机系统由(C)组成。 A、运算器、控制器、存储器、输入设备和输出设备 B、主机和外部设备 C、硬件系统和软件系统 D、主机箱、显示器、键盘、鼠标、打印机 2、以下软件中,(D)不是操作系统软件。 A、Windowsxp B、unix C、linux D、microsoft office 3、用一个字节最多能编出(D)不同的码。 A. 8个 B. 16个 C. 128个 D. 256个 4、任何程序都必须加载到(C)中才能被CPU执行。 A. 磁盘 B. 硬盘 C. 内存 D. 外存 5、下列设备中,属于输出设备的是(A)。 A、显示器 B、键盘 C、鼠标 D、手字板 6、计算机信息计量单位中的K代表(B)。 A. 102 B. 210 C. 103 D. 28

7、RAM代表的是(C)。 A. 只读存储器 B. 高速缓存器 C. 随机存储器 D. 软盘存储器 8、组成计算机的CPU的两大部件是(A)。 A、运算器和控制器 B. 控制器和寄存器 C、运算器和内存 D. 控制器和内存 9、在描述信息传输中bps表示的是(D)。 A、每秒传输的字节数 B、每秒传输的指令数 C、每秒传输的字数 D、每秒传输的位数 10、微型计算机的内存容量主要指(A)的容量。 A.RAM B.ROM C.CMOS D.Cache 11、十进制数27对应的二进制数为( D)。 A.1011 B. 1100 C. 10111 D. 11011 12、Windows的目录结构采用的是(A)。 A、树形结构 B、线形结构 C、层次结构 D、网状结构 13、将回收站中的文件还原时,被还原的文件将回到(D)。 A、桌面上 B、“我的文档”中 C、内存中 D、被删除的位置 14、在Windows 的窗口菜单中,若某命令项后面有向右的黑三角,则表示该命令项(A)。 A、有下级子菜单 B、单击鼠标可直接执 C、双击鼠标可直接执行 D、右击鼠标可直接执行

上海海事大学(C语言期末)上机题库

试卷编号:9688 所属语言:C语言 试卷方案:期中考试 试卷总分:100分 共有题型:5种 一、填空共15题(共计15分) 第1题(1.0分)题号:528 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是【1】. 答案: =======(答案1)======= 28 第2题(1.0分)题号:78 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 答案: =======(答案1)======= 15 第3题(1.0分)题号:510 若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案: =======(答案1)======= 2 第4题(1.0分)题号:437 以下程序的输出结果为【1】, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);}

答案: =======(答案1)======= 9,10 第5题(1.0分)题号:431 执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案: =======(答案1)======= 97 b *第6题(1.0分)题号:293 getchar()函数只能接收一个【1】. 答案: =======(答案1)======= 字符 第7题(1.0分)题号:440 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案: =======(答案1)======= 1 第8题(1.0分)题号:95 已知a=13,b=6, a&&b的十进制数值为【1】. 答案: =======(答案1)======= 1 第9题(1.0分)题号:306 当a=1,b=2,c=3时,执行以下程序段后b=【1】.

相关主题
文本预览
相关文档 最新文档