C语言试卷带答案

2022-04-30 00:05:13   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《C语言试卷带答案》,欢迎阅读!
试卷,答案,语言

线



2008-2009学年度第一学期C语言程序设计》试卷(A)



Cstruct Dstruct stud[30] { {

int num; int num;

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ___ _ _ _ _ __ _ _ __ _ _ __ _ _ __







分数





一.选择题(每小题2分,共40分)

1、下列可以正确表示字符型常量的是(

A \n B a C \t D 298 2、已经int i ; float f ;正确的表达式是

A int f%i B int( f ) % i C int (f % i) D(int)f% i 3、已知 int a,b ;执行语句a=( b=2*3,b*5) , b+6 ;变量a的值是( A36 B30 C12 D6

4、在C语言中,5种基本数据类型的存储空间长度的排列顺序为( C

A char char=int C char char 5、下列定义数组的语句中正确的是哪个

Aint a (10) Bchar str [ ] Cint n=5 D#define size 10

int a[4][n] char

str1[size],str2[size+2]

6、若有说明int a[ ][3]={ 1,2,3,4,5,6,7},a数组第一维的大小为( A2 B3 C4 D、不确定 7、已知:char s[10] ,*p=s;下列错误的表达式是

As=p+5 Bp=s+5 Cs[2]=p[3] D*p=s[0]

8、设有30个学生的成绩表,其中学号(int num、姓名(char name、成绩(int score,在下面结构体数组的定义中,不正确的是( D

Astruct student Bstruct student { {

int num; int num; char name[10]; char name[10]; int score; int score; }stud[30]; }

struct student stud[30];

char name[10]; char name[10]; int score; int score; }stud[30]; }; 9、设有如下形式的字符数组定义:

satic char str[ ]=beijing ;则执行下列语句后的输出结果为

printf(%d \ n,strlen (strcpy (str,hello))); A7 B8 C5 D9

10、若有以下数组定义:char a[]=abcde,b[]={a,b,c,d,e};则正确的描述是( B A a数组长度和b数组长度相同 B a数组长度大于b数组长度

C a数组长度小于b数组长度 D a数组和b数组存放相同的内容 11、输出较大字符串的正确语句是( C Aif(strcmp(str1,str2)) printf(%s,str1); Bif(str1>str2) printf(%s,str1);

Cif(strcmp(str1,str2)>0) printf(%s,str1); Dif(strcmp(str1)>strcmp(str2)) printf(%s,str1);

12、若调用一个函数,且此函数中没有return语句,则正确的说法是 A、该函数没有返回值 B、返回若干个系统默认值 C、能返回一个用户所希望的函数值 D、返回一个不确定的值 13、在一个文件中定义的全局变量的作用域为( D A、本程序的全部范围

B、离定义该变量的位置最近的函数 C、函数内部全部范围

D、定义该变量的位置开始到本文件结束 14、以下程序执行的结果是 int i=10;

main( ) int j=1;j=func( ); printf(%d , , j); j = func ( ); printf (%d \n , j); func ( ) { static int k=0; k=k+i; i=i+10 ; return (k);} A00 B1020 C1030 D2020

15、要想使语句printf(%s,str);显示yes!,str可以定义为( B Achar str=yes! Bchar str[5]=yes!

Cchar str={y,e,s,!} D#define str yes!

16、下面有关for循环的正确描述是




Afor循环只能用于循环次数已经确定的情况 Bfor是先执行循环体语句,后判断表达式 三、读程序,写结果(每小题4分,共20分)

1main() 1 显示结果:5555 C、在for循环中,不能用break语句跳出循环体

Dfor循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 17、以下不正确的说法是 A、在C语言中允许函数嵌套调用

B、函数值类型与返回值类型出现矛盾时,以函数值类型为准 C、形参可以是常量、变量和表达式

DC语言规定,实参和形参之间可以是值传递或地址传递

18、要使指针变量p指向一维数组a的第三个元素(下标为2,正确的赋值表达式是 Ap=&a p = &a[2] Bp = a +2 p = &a[2] Cp=&a + 2 p = a[2] Dp = a + 2 p = a[2]

19、二维数组a[4][5],将其转换成等价的一维数组b[20],问原二维数组中元素a[2][3],在转换成一维数组后再一维数组中的下表应该是b[ ] ( )

A6 B9 C13 D14

20、已知:char c [9] = computer,*s=c ; int i ;则此列的输出语句中,错误的是( Aprintf( %s ,*s); Bprintf ( %s ,c) ;

Cprintf( %s , s); Dfor(i=0 ; i<8 ; i++) printf (%c,c [i]); 二、填空题(每小题2分。共20分) 1、写出下列表达式的值:

a+b%3*( int )( a-b )/4 ( a= b = 8 )

2、写出下面各逻辑表达式的值。(a =3,b = 4,c=5) ! (a+b) + c-1 && b +c/2 3、下面程序的运行结果是

static char c[5]={ a,b,\0, c, \0 }; printf(%s,c);

4、二维数组A12】中元素的值是 5 A[4][5]={{2,2,4},{4,6,5,6},{0}};

5C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 6、执行下面的语句后,n的值是 12 int m[20], *p1=&m[5],*p2=m+17,n; n=p2-p1;

7p为一指针变量,写出表达式,用以实现:使p指向数组后一个元素,然后取该元素值 ++*p 8、设有定义语句“struct { int x ; int y ; }a = {1,5 },b = { 3,6 };”则执行语句printf ( %d,%d,%d

\n , ,,+;后的结果是 9、将数组元素752839按冒泡排序方法从小到大的顺序排序,问共需 趟的排序,第3趟排序的结果是

{

int i,j,m,n; i= ( j=5,m = j- - ); n = ++j ;

printf(%d,%d,%d,%d\n,i,j,m,n); }

2#include <>

main( ) 2{ int a[ ]={1,2,4,6,8,10},*p; p=a; *(p+2)+=3;

printf(%d,%d \n ,*p+2 ,*(p+2)); }

3main() 3{

int a=1,b=10; do { b - = a; a++;

}while(b--<0);

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

4、看程序填空:程序完成输出图形 * main() *** { int i , j ; ***** for(i= 1;i<=5; i++) ******* ( j=1; ;j++)

********* printf( printf( }

5void swap (int *p ,int *q )

{ int t; 5、显示结果: 、显示结果:a=2,b=8



*); \n);} 、显示结果:



{for
t = *p; *p = *q ; *q = t ; }

void exchange ( int *q1 ,*q2 ,*q3) {

if*q1>*q2swap(q1,q2); if*q1>*q3swap(q1,q3); if*q2>*q3swap(q2,q3); }

void main ( ) {

int a=3,b=8,c=6 ;

int *p1=&a , *p2=&b , *p3=&c ; exchange (p1,p2,p3);

printf(a=%d,b=%d,c=%d,a ,b,c); }

四、编程题(第1小题8分,第2小题12分,共20分) 1、编写程序实现26个英文字母的倒序输出。

2、设计一个函数,用于计算下面数列前n项之和(以n为形参变量)2/1 , 3/2 , 5/3 , 13/8 , 21/13 .......

2#include<>

void s(int n)

{

1main()

float sum=0; {

int i,j=2,k=1,t;

for(i=0;i

char c1=z; { while(c1>a) sum=sum+(float)j/k;

{

t=k; printf(%3c,c1);

k=j;

j=k+t;

c1--; }

}

printf("%f",sum); printf(%3c,c1);

}

main()

} {

int n;

scanf("%d",&n); s(n); }






本文来源:https://www.dywdw.cn/560c564c0540be1e650e52ea551810a6f524c80a.html

相关推荐
推荐阅读