2012年C语言考试试题A_第1页
2012年C语言考试试题A_第2页
2012年C语言考试试题A_第3页
2012年C语言考试试题A_第4页
2012年C语言考试试题A_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号: 姓 名: 所属学院: 年 级: 专 业: 装订密封线考生答题不得出现红色字迹,除画图外,不能使用铅笔答题;答题留空不足时,可写到试卷背面;请注意保持试卷完整。广西师范大学全日制普通本科课程考核试卷(2011 2012 学年第 二 学期)课程名称:c语言 课程序号: zb23313203 开课学院:电子工程学院 任课教师:欧启标、夏海英 年级、专业:2012级通信、电信、机械 试卷序号:a卷考试时间:120 分钟 考核方式:闭卷 r 开卷 实验操作 题号一二三四总分统分人签字满分 得分 得 分评卷人一、基础知识选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只

2、有一个最符合题目要求,请将其代码填写在题后的括号内。错选、多选或未选均无分。1、 下列不是c语言的分隔符是( )。a) 回车 b) 空格 c) 制表符 d) 双引号2、 c语言程序编译时,程序中的注释部分( )。a) 参加编译,并会出现在目标程序中 b) 参加编译,但不会出现在目标程序中 c) 不参加编译,但会出现在目标程序中 d) 不参加编译,也不会出现在目标程序中3、 有以下程序,其中%u表示按无符号整数输出。void main()unsigned int x=0xffff;printf(“%un”,x);执行后输出的结果是( )。a) -1 b) 65535 c) 32767 d) 0x

3、ffff4、 若以下选项中的变量已正确定义,则正确的赋值语句是:( )。a) x1=26.8%3; b) 1+2=x2; c) x3=0x12; d) x4=1+2=3;5、 以下用户标识符中,合法的是( )。a) int b) nit c) 123 d) a+b6、 若有代数式(3ae)/(bc),则下面不正确的c语言表达式是:( )。 a) a/b/c*e*3 b) 3*a*e/b/c c) 3*a*e/b*c d) a*e/c/b*37、 以下能正确定义变量a、b和c并为赋值的语句是:( )。 a) int a=5;b=5;c=5; b) int a,b,c=5; c) a=5;b=5;

4、c=5; d) int a=5,b=5,c=5;8、能正确表示"当x 的取值在1,10和200,210范围内为真,否则为假"的表达式是:( )。 a)  (x>=1)  &&(x<=10)  &&(x> = 200)  &&(x<=210) b) (x>=1)  | (x<=10)  |(x>=200) &#

5、160;|(x<=210) c)  (x>=1)  &&(x<=10)|(x>= 200)  &&(x<=210) d)  (x > =1)|(x< =10)  &&  (x> = 200)|(x<=210)9、下述对c语言字符数组的描述中错误的是:( )。 a) 字符数组可以存放字符串 b) 字符数组的字符串可以整体输入、输

6、出c) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 d) 不可以用关系运算符对字符数组中的字符串进行比较10、若有定义语句:int a=10;double b=3.14;,则表达式'a'+a+b值的类型是( )。a)char b)int c)double d)float11、若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为( )。a)1.9 b)1 c)2 d)2.412、若有定义:int a,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变

7、量a,5赋给变量b的输入数据是( )。a)3 5 b)3,5 c)3;5 d)3513、若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为( )。a)0和1 b)0和20 c)10和1 d)10和2014、有以下程序#include<stdio.h>main()int a=7;while(a-);printf("%dn",a);程序运行后的输出结果是( )。a)-1 b)0 c)1 d)715、以下不能输出字符a的语句是(注:字符a的ascil码值为65,字符

8、a的ascil码值为97)a)printf("%cn", 'a'-32); b)printf("%dn", 'a');c)printf("%cn", 65); d)printf("%cn", 'b'-1);16、若有定义语句:double a,*p=a;以下叙述中错误的是( )。a)定义语句中的*号是一个间址运算符b)定义语句中的*号只是一个说明符c)定义语句中的p只能存放double类型变量的地址d)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p

9、17、若有定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是( )。a) *p += 1; b) ( *p)+; c) +(*p); d) *p+;18、以下定义数组的语句中错误的是( )。a)int num=1,2,3,4,5,6; b)int num3=1,2,3,4,5,6;c)int num24=(1,2,3,4,5,6); d)int num4=1,2,3,4,5,6;19、若有定义语句:char *s1="ok",*s2="ok";,以下选项中,能够输出"0k"

10、;的语句是( )。a)if(strcmp(s1, s2)= =0) puts(s1); b)if(strcmp(s1, s2) != 0) puts(s2);c)if(strcmp(s1, s2)= = 1) puts(s1); d)if(strcmp(s1, s2)!=0) puts(s1);20、以下程序的主函数中调用了在其前面定义的fun函数#include <stdio.h>void main() double a15,k;k=fun(a);则以下选项中错误的fun函数首部是( )。a)double fun(double a15) b)double fun(double *

11、a)c)double fun(double a) d)double fun(double a)得 分评卷人二、简单程序分析题(本大题共10小题,每小题2分,共20分)请在各题的横线上填写正确答案。错填、多填或未填均无分。(1)有以下程序#include <stdio.h>void main()char s="012xy08s34f4w2"int i,n=0;for(i=0;si!=0;i+)if(si>='0'&&si<='9') n+;printf("%dn",n);程序运行后的输

12、出结果是( )a)0 b)3 c)7 d)8(2)有以下程序#include <stdio.h>void main()int a=1,b=0;if(-a) b+;else if(a=0)b+=2;else b+=3;printf("%dn", b); 程序运行后的输出结果是( )。a)0 b)1 c)2 d)3(3)有以下程序#include <stdio.h>void main()int s;scanf("%d",&s);while(s>0)switch(s)case 1:printf("%d"

13、,s+5);case 2:printf("%d",s+4); break;case 3:printf("%d",s+3);default:printf("%d",s+1); break;scanf("%d",&s);运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )a)6566456 b)66656 c)66666 d)6666656(4)有以下程序#include <stdio.h>int fun()static int x=1;x*=2;return x;void

14、main()int i,s=1;for(i=1;i<=3;i+) s*=fun();printf("%dn",s);程序运行后的输出结果是( )a)0 b)10 c)30 d)64(5)有以下程序#include <stdio.h>#define n 4void fun(int an, int b)int i;for(i=0; i<n; i+) bi=aii-ain-1-i;void main()int xnn=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, yn, i;fun(x,y);

15、for(i=0; i<n; i+) printf("%d, ", yi); printf("n");程序运行后的输出结果是( )。a)-12,-3,0,0, b)-3,-1,1,3, c)0,1,2,3, d)-3,-3,-3,-3(6)有以下程序#include <stdio.h>void main() char *p="3697", "2584" int i, j; long num=0; for(i=0; i<2; i+) j=0; while(pij!='0') if

16、(pij-'0')%2) num=10*num+pij-'0' j+=2; printf("%dn",num);程序执行后的输出结果是( )a)35 b)37 c)39 d)3975(7)有以下程序#include<stdio.h>#include<string.h>void fun(char *w, int m)char s, *p1, *p2;p1=w; p2=w+m-1;while(p1<p2) s=*p1; *p1=*p2; *p2=s; p1+; p2-;void main()char a="

17、123456"fun(a, strlen(a);puts(a);程序运行后的输出结果是( )a)654321 b)116611 c)161616 d)123456(8)有以下程序#include <stdio.h>struct ordint x, y;dt2=1, 2, 3, 4;void main()struct ord *p=dt;printf("%d,", +(p->x); printf("%dn", +(p->y);程序运行后的输出结果是( )a)1,2 b)4,1 c)3,4 d)2,3(9)有以下程序#inc

18、lude<stdio.h>#include<string.h>typedef structchar name9; char sex; int score2;stu;stu f(stu a)stu b="zhao",'m',85,90;int i;strcpy(, );a.sex = b.sex;for (i=0; i<2; i+) a.scorei=b.scorei;return a;void main()stu c = "qian", 'f', 95, 92, d;d

19、=f(c);printf("%s, %c, %d, %d,", , d.sex, d.score0, d.score1);printf("%s, %c, %d, %d,", , c.sex, c.score0, c.score1);程序运行后的输出结果是( )。a)zhao,m,85,90,qian,f, 95,92 b)zhao,m,85,90,zha0,m,85,90c)qian,f,95,92,qian, f, 95,92 d)qian,f,95,92,zhao,m,85,90(10)执行以下程序后,test.txt文件的内

20、容是(若文件能正常打开)( )#include <stdio.h>main() file *fp; char *s1="fortran",*s2="basic"; if(fp=fopen("test.txt","wb”)=null) printf("cant open test.txt filen");exit(1); fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中* fseek(fp,0l,seek_set); *文件位置指针移到文件开头* fwrit

21、e(s2,5,1,fp); fclose(fp);a)basican b)basicfortran c)basic d)fortranbasic得 分评卷人三、填空题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个最符合题目要求,请将其代码填写在题后的括号内。错选、多选或未选均无分。1、 求解赋值表达式a=(b=10)%(c=6),表达式:a、b、c的值依次为:_ _;2、 在c语言中,要求运算量必须是整型的运算符是:_ _;3、以下程序运行的结果是: ;(其中“”表示是空格)#include<stdio.h>int fun(char *s) char

22、*p=s; while(*p!='0') p+; return(p-s);void main() char a ="iloveguangxinormaluniversity!" printf("%dn",fun(a); 4、以下程序运行的结果是: ;void main() int a33=1,2,3,4,5,6; int i,j,s=0; for(i=1;i<3;i+) for(j=0;j<=1;j+) s+=aij; printf(“%dn”,s);5、以下程序运行的结果是: ;#include<stdio.h>

23、#include<string.h>void main() int i; char str10,temp10; gets(temp); for(i=0;i<4;i+) gets(str); if(strcmp(temp,str)<0) strcpy(temp,str); printf("%sn",temp); 6、以下程序运行的结果是: ;#include<stdio.h>ast(int x, int y, int *cp, int *p) *cp=x+y; *p=x-y;void main() int a,b,c,d; a=4;b=3;

24、 ast(a,b,&c,&d); printf("%d,%dn",c,d);7、以下程序运行的结果是: ;#include<stdio.h>#define t(x) x%xvoid main() int a=3,b=5; printf("%dn",t(a+b)*t(a+b);8、有以下程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a; k=k>c?c:k;执行该程序段后,k的值是: ;9、以下程序运行的结果是: ;struct node int k; struct node *link;voi

25、d main() struct node m5,*p=m,*q=m+4; int i=0; while(p!=q) p->k=+i;p+; q->k=i+;q-; q->k=i; for(i=0;i<5;i+) printf("%d",mi.k); printf("n");10、以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#include  <stdio.h>void   f(int &#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论