文档库 最新最全的文档下载
当前位置:文档库 › 长江大学C语言期末试卷A

长江大学C语言期末试卷A

2009─2010 学年 第一学期 《 C 程序设计 》课程考试试卷(A 卷) 一 判断题 (每小题 1 分,共10分) (说明:正确的划√,错误的划×) ( )1)在传统流程图中,用矩形框表示判断。 ( )2)C 语言表达式1/2的值为0.5。 ( )3)指定实数123.56按指数形式输出的形式可为1.2356E+002。 ( )4)-X=2是合法的表达式。 ( )5)复合语句在语法上被看作一条语句。 ( )6)能在赋值语句中通过赋值运算符号“=”对字符型数组进行整体赋值。 ( )7)函数可以定义在另一个函数的内部。 ( )8)宏替换不占程序的运行时间。 ( )9)二维数组a[10][10]的第i 行第 j 列的值可以表示为*(*a+i*10+j )。 ( )10) int (*p)[4]表示一个指针数组,该数组的四个元素都为指针变量。 二 选择题(每小题2分,共30分) ( )1、以下叙述不正确的是 A )一个C 源程序可由一个或多个函数组成 B )一个C 源程序必须包含一个main 函数 C )C 程序的基本组成单位是函数 D )在C 程序中,注释说明只能位于一条语句的后面 ( )2、以下选项中可作为C 语言合法常量的是 A)90. B)090 C)9e1.0 D)90.0e ( )3、以下选项中合法的字符常量是 A)”B ” B )'\010' C )-268 D ) D ( )4

、能正确表示逻辑关系:“a ≤10且a ≥0”的C 语言表达式是 A)0<=a<=10 B)a<=0&a>=10 C)a<=10 &&a>=0 D)a<=10‖a>=0 ( )5

、设 int x=1, y=1; 表达式(!x||y--)的值是 A )1 B )0 C )2 D )-1

( )6、数字字符0的ASCII 值为48,若有以下程序

main()

{

char a=’5’,b=’6’;

printf("%c,",b++);

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

}

程序运行后的输出结果是

A)7,2 B)55,2 C)54,2 D)6,2

()7、有以下程序

main()

{

int m=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m);

}

程序运行后的输出结果是

A)12353514 B)12353513 C)12343514 D)12343513

()8、有以下语句:float b;char c[10];,则正确的输入语句是

A)scanf("%d%s",&b,c); B) scanf("%f%s",&b,c);

C)scanf("%f%s",b,c); D)scanf("%d%s",b,&c);

()9、有以下程序

# define f(x) (x*x)

void main()

{

int i1, i2;

i1=f(6)/f(2) ; i2=f(3+3)/f(1+1) ;

printf("%d, %d\n",i1,i2);

}

程序运行后的输出结果是

A)9,9 B)9, 5 C)5, 9 D)5, 5

()10、有以下程序

main()

{

int a,b,d=29;

a=d/2%10;

b=a&&(-1);

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

}

程序运行后的输出结果是

A)0,0 B)1,1 C)4,1 D)1,0

()11、有以下程序

main()

{

int i=3,j=3,k=3;

if(i++==4&&(++j==4||k++==4))

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

}

程序运行后的输出结果是

(A)4 4 4 (B)4 4 3 (C)4 3 3 (D)3 3 3

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

A)#*#*# B)##### C)***** D)*#*#* void main( )

{

int i;

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

{

if(i%2) {printf("#");continue;}

printf("*");

}

printf("\n");

}

()13、有以下程序

void main( )

{

char b[10]=”abcd”;

printf(“%d, %d\n”,strlen(b) ,sizeof(b));

}

执行后输出结果是

A) 4,4 B)10, 10 C) 10,4 D) 4, 10

()14、有以下程序

void swap1(int c[])

{

int t; t=c[0]; c[0]=c[1]; c[1]=t;

}

void swap2(int c0,int c1)

{

int t; t=c0; c0=c1; c1=t;

}

void main( )

{

int a[2]={7,9},b[2]={7,9};

swap1(a) ; swap2(b[0],b[1]);

printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);

}

其输出结果是()。

A) 9 7 7 9 B) 9 7 9 7 C)7 9 7 9 D) 7 9 9 7

()15、以下叙述中正确的是()。

A) 函数的形参都属于全局变量

B)全局变量都是静态类别变量

C)全局变量的作用域一定比局部变量的作用域范围大

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

三填空题(每小题3分,共36分)

1、执行以下程序后的输出结果是。

main()

{

int a=2;

a=(a/2,a*5,a+4);

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

}

2、以下程序运行后的输出结果是。

void main()

{

int a,b,c;

a=12;

b=012;

c=0x12;

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

}

3、以下程序的输出结果是___________________。

void main( )

{

int a=5,b=4,c=3,d;

d=(a>b>c);

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

}

4、学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。利用条件运算符的嵌套可写为_________________________________________________________。(表示分数的变量用x)

5、以下程序

void main()

{

int i;

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

{

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

}

执行后输出结果是。

6、以下程序运行后的输出结果是。

void main()

{

int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

int i=0,j=0,s=0;

while(++i<4)

{

if(i==1||i==3) continue;

j=0;

do{

s+= a[i][j]; j++;

} while(j<4);

}

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

}

7、下列程序段的输出结果是。

void main()

{

char b[]=”How_are_you”;

b[7]=’\0’;

printf(“%s \n”, b );

}

8、以下程序运行后的输出结果是。

void main()

{

char s[ ]=“2009”,*p;

for ( p=s ; p

printf(“%s\n”, p);

}

9、设有以下结构类型说明和变量定义,则变量a在内存所占字节数是__ _,变量p在内存所占字节

数是,变量a.age在内存所占字节数是。(以VC编译器对字节数的计算为准)

struct stud

{ char num[8];

int score[4];

double ave;

int age;

} a,*p;

10、设char型变量x中的值为00100111(2),则表达式(2+x)^(~3)的值是。(用二进制表示)

11、若fp已正确定义为一个文件指针,要以只读打开打开C盘根目录下的二进制文件d1.dat,请填空:

fp=fopen( );

12、以下程序实现通过学号(0~3)查找某个学生的所有成绩输出,空中要将一个行指针转化成普通指针。

main()

{

float score[][4]={{60,70,80,90}, {56,89,67,88},{34,78,90,66}};

float *search(float (*pointer)[4],int n), *p;

int i,m;

printf("Enter the number of student:");

scanf("%d",&m);

printf("The scores of No.%d are:\n",m);

p=search(score,m);

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

printf("%5.2f\t",*(p+i));

}

float *search(float (*pointer)[4], int n)

{ float *pt;

pt= ;

return(pt);

}

1、编程计算1-1/2+1/3-1/4+1/5-………..-1/100的值。并画出N-S流程图(10分)

2、写一个递归函数实现阶乘n!,然后在主函数中调用该函数实现1!+2!+3!+…….10! (8分)

3、通过键盘输入十个整数,找出其中最小的正数(6分)

相关文档
相关文档 最新文档