青大c语言试题

更新时间:2023-09-09 05:58:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学院  专业  级  班 学号 姓名 by gaocd

2007~2008学年 春季学期 课程名称C语言程序设计

题号 总分 得分 阅卷 一 10 二 20

考试时间2008.6

三 10 ?A卷 ?B卷

四 20 五 20 六 20 合计 100 复核 本试卷共4页,做题前请检查试卷是否缺页。

得分 阅卷人 一、判断正误(对的打√,错的打╳,每题1分,共10分)

( ) 1. 在C语言程序中,变量名可以用字母或数字开头。 ( ) 2. 在C语言程序中,有的函数可以没有返回值。 ( ) 3. do while循环至少会执行一次。

( ) 4. 给数组a[10]初始化:int a[10];a[10]={0,1,2,3,4,5,6,7,8,9}。 ( ) 5. N-S图用带箭头的线条指示程序的执行顺序。

( ) 6. C语言中,任何变量都具有一定表达范围,超过这个范围就会产生溢出。 ( ) 7. ++、--和*是单目运算符,并且具有相同的优先级。 ( ) 8.若有声明int a[10],则数组a可以保存长度为10的字符串。

( ) 9. C语言区分大小写,变量MYWORK_1与mywork_1将被视为不同的两个变量。 ( ) 10.在C语言程序中,函数可以直接或间接调用自己。 得分 阅卷人 二、单项选择(请将答案填在题目前的括号内,每题1分,共20分)

( ) 1. 下面数据中属于字符常量的是:

A. \A\ B. w C. \ D. '\\\\' ( ) 2. 下面运算符中优先级别最高的是:

A. & B. ++ C. += D. &&

( ) 3. 设a,b,c为int型变量,且a=3,b=4,c=5,下面表达式值为0的是。

A. ?a?&&?b? B. a<=b C. a||b+c&&b-c D.!((a+b)&&!c||1) ( ) 4. C语言中,以下选项中不合法的变量名是

A. a123 B.gh_1 C. high D._if

( ) 5. 下面合法的表达式是

A. (a+b)++ B.023++ C.6.5%5 D.~7 ( ) 6. 数学算式1/2+cos(30o)+log(7)写成C语言表达式正确的是

A.1/2+cos(30)+log(7) B.1/2+cos(30)+log (7)

C.1./2+cos(30/180*3.14)+log (7) D.1.0/2*cos(30/180*3.14)+log10(7) ( ) 7. 下面属于字符串常量的是:

A. abcd B.?abc? C. “abc” D.?a? ( ) 8. 设有语句int a=3;执行a+=a-=a*a;后,a的值是。

A. 3 B. 0 C.9 D.-12

( ) 9. 设有语句int a=3;执行语句printf(“%d”,-a++);后,变量a的值是:

A.3 B. 4 C.-3 D. -2

( ) 10. 关于语句int i,s=0;for(i=0;i<10;i++)s+=i;说法正确的是。

A.执行完后,i的值是9

B.执行完后,s的值不确定 D.执行完后,i的值不确定

C.执行完后,s的值是45

( ) 11. 有语句组int a[10]={1,2,3,4},i,s=0;for(i=2;i<10;i++)s+=a[i];则s的值为。

A. 不确定 B.6 C.10 D.7 ( ) 12. for(i=0;i<10;i++){if(i= =5)break;}执行完后i的值是。 A. 0 B. 5 C. 10 D.9 ( ) 13. 在C语言中,全局变量的存储类别是:

A static B extern C void D register ( ) 14.如有定义int a[5]={1,2,3,4,5},*P=a;则*++p的值是:

A. 1 B. 2 C. 3 D.不确定 ( ) 15. 有语句int a[10],*p=&a[9];下面对数组元素引用不正确的是。

A.a[1]=a[2] B.*a=20 C.*p=30 D.*(p+2)=40 ( ) 16.设有语句char c=?072?;则变量c:

A. 包含1个字符 B.包含两个字符 C.包含三个字符 D.不合法 ( ) 17. 为了比较两个字符串是否相等,应当使用:

A. if(s1==s2) B.if(s1-s2==0) C.if(strcpy(s1,s2)) D.if(strcmp(s1,s2)==0) ( ) 18. 下面哪一个不是C语言的基本数据类型。

A. int B.short C.logical D.float ( ) 19. 下面表达式正确的是。

A.(a+b)++ B. *p++ C.(a+b)(c+d) D. (a+b)=2

( ) 20.若有定义short a[3][10];,假设a[0][0]的地址是0x000,那么a[1][0]的地址是:

A. 0x0002 B. 0x0001 C. 0x000A D.0x0014 得分 阅卷人 三、填空题(每空1分,共10分)

1. 有说明语句char a[30]=\执行printf(“%c”,a[5])的输出结果是________,执行printf(“%s”,&a[5]) 的输出结果是 。

2. 如果程序中要使用函数sqrt(),预处理命令表示为__________。

3. 结构化程序中三种基本结构是指__________、__________和__________。 4. C语言中语句结束符号是__________。字符串结束标志是 。 5. 一个C语言源代码要变成可执行程序需要经过 和 。 6. __________ 称为指针。 得分 阅卷人 四、写出下列程序的运行结果(每题2分,共20分)

1 #include void main(){ int a[9]={1,3,5,7,9,11,13,15,17,},i,s=0; for(i=0;i<10;i+=3) s+=a[i]; printf(“%d”,s); } 输出结果是: 3 #include void main(){ char a[10]=”ABCDE”,*p=a; p++; puts(p); } 输出结果是: 5 #include void main(){ int a=-3; do a++; while(a<0); printf(“%d”,a); } 输出结果是: 7 #include void main(){ int k=0; switch(k){ 2 #include void main(){ int i; for(i=0;i<10;i+=3) printf(“%d”,i} 输出结果是: 4 #include void main(){ int a=25; printf(\} 输出结果是: 6 #include void main(){ int i,s=0; for(i=0; i<10; i++){ if(i<9)continue; s += i; } printf(“%d”,s;} 输出结果是: 8 #include int a=2,b=5; void main(){ a++; case 0: printf(\ case 1: printf(\default: printf(\ } } 输出结果是: 9 #include int func(int a,int b) { return(a+b); } main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(\ } 输出结果是: int b=3; printf(“%d,%d\\n”,(a+b),(a*b)); } 输出结果是: 10 #include int a=2,b=3; int ff( ){ int a=4; return (++a)+(++b); } void main(){ int b=5; printf(“%d\\n”,a+ff()+ff()+ff()+b); } 输出结果是: 得分 阅卷人 五、程序填空(每题4分,共20分)

1. 下面程序输入整数n,输出1到n之间能被2或3整除的数,填空完成程序。 #include void main(){

int i,n;

scanf(“%d”,&n);

for( ;i<=n;i++)if( )printf(“%d\\n”,i); }

2. 下面程序完成,输入一行字符,统计其中小写字母的个数并输出,填空完成程序。 # include void main(){

char c;

int count=0;

while((c=getchar())!=?\\n?)

if( ) ; printf(“%d\\n”,count);

}

3.下面程序利用指针对两个整数从大到小排序,填空完成程序。 #include void main(){

int a,b,*p=&a,*q=&b,t;

scanf(“%d%d”, ); if(*p<*q){ ; ; ; }

printf(“%d,%d\\n”,*p,*q); }

4. 下面程序使用指针访问数组,输出数组元素的值,填空完成程序。 #include void main(){

int a[5][2]={11,12,13,14,15,16,17,18,19,20},*p,i; ; for(i=0;i<10;i++)

( ); }

5. 下面程序不使用strcat函数,连结两个字符串,填空完成程序。 #include void main(){ char a[100],b[100];

int i=0,j=0;

; ; while(a[i]!='\\0')i++;

while(b[j] != '\\0'){ } ; puts(a); } 得分

阅卷人 六、编程(每小题4分,共20分)

输入三个整数,输出其中最大值。

本文来源:https://www.bwwdw.com/article/bbkh.html

Top