C语言期末试题及答案

  • 格式:doc
  • 大小:47.00 KB
  • 文档页数:9

C语言期末考试题及答案

一. 单选题 (共20题,每题2分,共40分)

1. 以下运算符中优先级最高的是( )

A.< B.+ C.&& D .!

2. 下列说法正确的是()

A. 在执行C语言程序时不是从main函数开始的

B. C语言程序书写格式严格,一行内必须写一个语句

C. C语言程序书写格式自由,一个语句可以分写在多行上

D. C语言程序书写格式严格,一行内必须写一个语句,并要有行号

3. 下面的符号常量定义中,正确的是 ( )

A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14

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

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

}

A.0 B.29 C.31 D.无定值

5. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )

A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

6. 假设int型变量占两个字节的存储单元,若有定义:

int x[10]={0,2,4}; 则数组x在内存中所占字节数为______。

A.3 B.6 C.20 D.10

7. 下列合法的数组定义是_________。

A.int a[]=”string”; B.int a[5]={0,1,2,3,4,5};

C.char a=”string”; D.char a[]={0,1,2,3,4,5};

8. 若给出以下定义:

char x[]="abcdefg";

char y[]={'a','b','c','d','e','f','g'};

则正确的叙述为__________。

A.数组x和数组y等价 B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组y的长度大于数组x的长度

9. 若定义如下变量和数组_________。

int j;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是_________。

For (j=0;j<3;j++)

Printf("%d",x[j][2-j]);

A.1 5 9 B.1 4 7 C. 3 6 9 D. 3 5 7

10. putchar函数可以向终端输出一个

A、字符或字符变量值

B、实型变量值

C、字符串

D、整型变量表达式值

11. 以下能正确定义数组并正确赋初值的语句是______。

A.int N=5,b[N][N];

B.int a[1][2]={{1},{3}}; C.int c[2][ ]= {{1,2},{3,4}};

D.int d[3][2]={{1,2},34}};

2. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'4';后,c2中的值为

A、66 B、 68 C、67 D、 69

3. 以下能正确定义一维数组的选项是________________。

A.int num[]; B.#define N 100 int num[N];

C.int num[0..100]; D.int N=100;int num[N];

14. 以下程序的输出结果是_______。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A."AAAA" B. "BBBCC" C. "BBB" D."CC"

15. 若有以下程序段,c3中的值是

A. 0 B. 1/2 C. 0.5 D. 1

int c1=1,c2=2,c3;

c3=c1/c2;

16. 以下程序段的输出结果是( )

A) 15 B) 14 C) 不确定 D) 0

main()

{ int i,sum;

for(i=1; i<6; i++) sum+=sum;

printf("%d\\n",sum);

}

17. 函数调用strcat(strcpy(str1,str2),str3)的功能是_______。

A. 将串str2复制到串str1中后再将串str3连接到串str1之后 B.将串str1连接到串str2之后再复制到串str3之后

C. 将串str1复制到串str2中后在连接到串str3之后

D.将串str2连接到串str1中后再将串str1复制到串str3中

18. 以下叙述正确的是

A) do_while语句构成的循环不能用其它语句构成的循环来代替。

B) do_while语句构成的循环只能用break语句退出。

C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。

D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。

19. 执行以下一段代码后,变量a,b,c的值分别是( )

int x=10,y=9;

int a,b,c;

a=(--x==y++)?--x:++y;

b=x++;

c=y;

A. a=8,b=8,c=10 B. a=9,b=9,c=9

C.a=9,b=10,c=9 D.a=1,b=11,c=10

20. 表达式3+(!(7<1)||(3<=7))的值为( )

A.3 B.4 C.5 D.错误的表达式

二. 判断题 (共10题,每题1分,共10分)

1. 不同的函数中可以使用相同的变量名。()

2. 函数的定义可以嵌套,但函数的调用不可以嵌套。( )

3. C语言程序的变量必须先定义再使用()

4. C语言认为名为Student和student的变量是不同变量

5. C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句()

6. 在switch-case语句中,必须使用default语句()

7. C语言中,字符常量可以用单引号或双引号括起来()

8. 使用putchar函数可以向终端输出一个字符串() 9. do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式()

10. 字符串比较的规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。( )

三. 填空题 (每空1分,共18分)

1. C语言中的简单数据类型有 ( )( )、( )。

2. C源程序的基本单位是( ).

3. 以下程序运行后的输出结果是:( )

void swap(int x,int y)

{ int t;

t=x;

x=y;

y=t;

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

}

main()

{ int a=3,b=4;

swap(a,b);

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

4 3 3 4;

4. 结构化程序由 ( )、( ) 、( ) 三种基本结构组成。

5. 语句标号由标识符表示,标识符由 ( )、( ) 和( ) 组成。第一个字符必须是字母或下划线。

6、在C语言程序中,用关键字( )定义基本整型量,用关键字( )定义单精度实型变量,用关键字( )定义双精度实型变量。

7. 若有以下程序: main()

{ int i,j;

scanf("i=%d,j=%d",&i,&j);

printf("i=%d,j=%d",i, j); } 要求给i赋10,给j 赋20,则应该从键盘输入 。

8.在C语言库函数中,STRLEN(字符串)的功能是:( )。

9.函数的两种调用方式是( )和( )。

四. 读程序题 (共3题,每题4分,共12分)

1. 以下程序段的输出结果是:

#include

main( )

{

int i;

for(i=1;i<=5;i++)

{

if(i%2)

printf("* ");

else

continue;

printf("#");

}

printf("$\n");

}

2. 阅读程序

#include

void main()

{

int i,j;

int a[5][5];

printf("\n");

for(i=0;i<5;i++) {

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i<5;i++)

for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j];

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

{

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

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

printf("\n");

}

}

请输出程序结果:

3. 阅读下列程序,写出程序的输出结果 。

# include

main()

{

int y=9;

for(; y>0; y--)

if( y%3 == 0){ printf("%d",--y);continue;}

}

五. 程序设计题 (共2题,每题10分,共20分)

1. 求1到位10的阶乘之和。(10分).

2. 有一10个数的数组,求其最小值,和最大值。 (10分)

C语言期末试题答案