C语言2013-2014学年第一学期期末试卷解析
更新时间:2023-10-06 19:01:01 阅读量: 综合文库 文档下载
江苏大学试题
(2013-2014学年第1学期)
注意事项:
1. 闭卷考试。考试时间为120分钟。
2.选择题请用2B铅笔涂在答题卡上。其余用签字笔或圆珠笔填写在答题纸上。 3.请将答题卡(提前15分钟收取)、答题纸、试卷分别都写上班级、学号、姓名、任课教师。
一、选择题(50分,每小题1分)
1.标准C语言程序的文件名的后缀是 。
A. .cpp B. .c C. .exe D. .obj
2.以下叙述正确的是_______。 A.C语言程序是由过程和函数组成的
B.C语言函数可以嵌套调用,例如:fun(fun(x))(不可嵌套定义) C.C语言函数不可以单独编译(可以单独编译)
D.C语言中除了main函数,其他函数不可作为单独文件形式存在
3.下列可用于C语言用户标识符的一组是_______。
A.void, define, WORD B.a3_3,_123,Car C.For, -abc, IF Case
D.2a, DO, sizeof
(合法字符数字,下划线,字母,以下划线或字母开头,但不能是C语言关键字) 4.以下选项中不能用作C程序合法常量的是_________ 。
A.1,234 B.'\\123' C.123 D.\
(合法常量: 整型常量,符号常量,实型常量,字符常量,转义字符,字符串常量) 5.以下定义语句中正确的是_______。
A.int a=b=0; (初始化不允许连等) B.long a=65; b; C.float a=1 ; D.double a=0.0;b=1.1;
6.以下叙述中正确的是______。
A. 在C程序中无论是整数还是实数,只要在允许范围内都能准确无误的表示 B. 在C程序中只要是整数在允许范围内都能准确无误的表示 C. 在C程序中只要是实数在允许范围内都能准确无误的表示 D. 在C程序中无论是整数还是实数,都无法准确无误的表示
7.设有语句 int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是______。 A. 3 B. 0 C. 9 D. -12 (a+=a-=a*a等价于 a=a+(a=a-(a*a)) )
8.int a=256; 执行语句 “printf(\”的结果是________。
A.100 B.256 C. 0FFE D.00FF
(%x,十六进制输出,将256转换为16进制)
9.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 。 A.if((a>b)&&(b>c)) k=1; else k=0; B.if((a>b)||b>c)) k=1 else k=0; C.if(a<=b) k=0; else if(b<=c) k=1; D.if(a>b) k=1; else if(b>c) k=1; else k=0;
10.有以下程序
#include
do{s+=1;a=a-2;}while(a!=n); printf(\
若要使程序的输出值为2,则应该从键盘给n输入的值是 。 A.-1 B.-3 C.-5 D.0 (即当循环条件中a==n时循环退出,) 11.以下程序段的运行结果是______。 char c[5]={ 'a', 'b', '\\0', 'c', '\\0'}; printf(\
A.ab B.'a''b' C.ab\\0c\\0 D.ab\\0c
12.当执行下列语句序列时:
static int x; do{x+=x*x;} while(x);
问do-while循环一共执行了 次。
A.0 B.1 C.无穷多 D.暂时不能确定,要依赖x来判断。 (静态变量和全局变量若未赋值时,系统自动赋0值)
13.设有以下函数定义,则返回的函数值是_________。【本题跳过】 main()
{int x,*y; y=fun(&x);?.} int *fun(int *a)
{ int *t; *a=99; t=a; return t;}
A.无确定的值 B. 形参a的地址 C.主程序中变量x的地址 D. 函数中变量t的地址
14.设有以下说明,则值为210的表达式是______。
struct s { int a;int *b;};
int x0[]={110,120},x1[]={210,220}; struct s x[]={{100},{200}},*p=x; x[0].b=x0;x[1].b=x1;
A. *p->b B. (++p)->a C. *(p++)->b D.*(++p)->b
15.若有定义int a,b;若要通过scanf(“a=%d,b=%d”,&a,&b);语句分别给a 和b 输入1和2,则正确的数据输入内容是_______。
A.1,2 B.1 2 C.a=1,b=2 D.a=%d,b=%d 16.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是_____。 A.a=a++,i++; B.i=(a+k)<=(i+k); C.i%=a; D.i=!a; (注意算术运算符%的特点:两操作数都是整型) 17.以下程序运行后的输出结果是_____。
#include
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2); printf(\}
A.3 B.4 C.5 D.6
18.有以下程序
#include
f=fopen(\ fprintf(f,\ fclose(f);}
若文本文件filea.txt 中原有内容为hello,则运行以上程序后文件filea.txt中的内容为_____。 A.helloabc B.abclo C.abc D.abchello
19.有以下程序段
char name[20]; int num;
scanf(\
当执行上述程序段后,并从键盘输入:name=Lili num=1001<回车>后,name 的值为_____。
A.Lili B.name=Lili C.Lili num= D.name=Lili num=1001.
20.有以下程序
C.struct ord {int x;int y;int z;} a; D.struct {int x;int y;int z;} a;
35. 有以下程序
#include
{ int a,b;}data[2]={10,100,20,200}; main()
{ struct S p=data[1]; printf(\程序运行后的输出结果是 ______。
A.10 B.11 C.20 D.21
36. 有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是______。 A. gets(&s[0]); B.scanf(\ C.gets(s); D.scanf(\ (%s, 对应的一定是地址,而s[1]是数组元素) 37. 有以下程序
#include
{char a[5][10]={\ int i,j;char t[10];
for(i=0;i<4;i++) /*擂台法排序*/ for(j=i+1;j<5;j++) if( strcmp(a[i],a[j])>0) { strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t);} puts(a[3]); }
程序运行后的输出结果是 ______。
A. beijing B. china C. welcome D. Tiananme (该程序的功能是实现由小到大的字符串排序)
38. 若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是_____。 A.pk=k; B.pk[0]=&k[1][2]; C.pk=k[0]; D.pk[1]=k;
(错误AC,pk是指针数组的数组名,不能给数组名赋值,错误D,不能把行指针赋给列指针)
39. 有以下程序
#include
{ int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&m; a=++*p1+*p2; b=k;
printf(\程序运行后的输出结果是_____。
A.10 1 B.9 1 C.10 2 D.9 2
40. 以下选项中有语法错误的是 _____。
A. char *str[ ]={\ B. char str[10 ]={\C. char *str[3]; str[1]=\ D. char str[3][10];str[1]={\
41. 设有以下程序段
struct MP3 {char name[20]; char color; float price;}std,*ptr; ptr=&std;
若要引用结构体变量std中的color成员,写法错误的是_____。
A.std.color B. ptr-> color C.std-> color D.(*ptr) .color
42. C语言程序中,若函数无返回值,则应该对函数说明的类型是______。 A. int B. double C.char D.void
43. 若有函数
void fun(double a[], int *n) {???}
以下叙述中正确的是______。
A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送 B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组
44. 有以下函数
#include
程序运行输出结果是______。
A.xyz B. wxyz C. zyxw D.zyx
45. 有以下函数
int aaa(char *s) { char *t=s; while(*t++); t--; return(t-s);}
以下关于aaa函数的功能叙述正确的是______。
A.求字符串s的长度 B.比较两个串的大小 C.将串s复制到串t D.求字符串s所占字节数
46. 设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是__。 A.auto B.register C.static D.auto或register
47. 有以下程序
#include
{ static int x=1; /*静态变量只赋一次初值,下次调用时沿用更改后的值*/ x=x*2; return x;} main() { int i,s=1;
for(i=1;i<=2;i++) s=fun(); printf(\
程序运行后的输出结果是______。
A.0 B.1 C.4 D.8
48. 有以下程序
#include
int a=5; /* 全局变量 */ void fun(int b)
{ int a=10; /* a是局部变量,仅在fun函数的效*/ a+=b;printf(\main() { int c=20;
fun(c);a+=c;printf(\ /* a用全局变量的值*/ 程序运行后的输出结果是______。
A.3025 B.3050 C.2525 D.2545
49. 若有说明int(*p)[3]; 则以下_________是正确的叙述。
A. p是一个指针数组 B. (*p)[3]与*p[3]等价
C. p是一个指针,它可以指向一个一维数组中任一元素
D. p是一个指针,它只能指向一个包含3个int类型元素的一维数组
50. 下面能正确进行字符串赋值操作的是______。
A.char s[5]={“ABCDE”}; B.char s[5]={‘A’,’B’,’C’,’D’,’E’}; C.char *s ; s=”ABCDE” ; D.char *s; scanf(“%s”,s) ;
(字符串赋值,一是赋值的正确格式,二是考虑存储字符串的数组的长度) 二、程序阅读题(20分,每空2分)
(注意:请将答案按编号填入答题纸的指定位置) 1.当输入以下数据时,100 200 300 400 500<回车>,下面语句的执行结果为 (1) 。【本题跳过】
#include
scanf(\ printf(\
100 300 400
2.以下程序段的输出结果是_(2)____。
#include
{int a=4,b=3,c=5,t=0; if(a
if(a printf(\ 5 0 3 3.下列程序输出的最后一行是 (3) 。 -2 #include {case 1: switch(-i-3) {case 1:printf(\ case 2:printf(\ case 2:printf(\ case 3:printf(\ 4.执行以下程序后,sq[0][2]= __(4)_2___,sq[1][1]= ___(5)__5___,sq[2][0]= ___(6)__8___。 main () {static int sq[3][3]={0,0,0,0,0,0,0,0,0}; int j=1,k=0,n; sq[j][k]=1; for(n=2; n <=9; n ++) {j--; k--; if(j<0&&k<0){j++; k+=2;} else if(j>=0&&k<0)k=2; else if(j<0&&k>=0)j=2; else if(j>=0&&k<=2&&sq[j][k]!=0) {j++; k+=2;} sq[j][k]=n; } for(j=0;j<3;j++) {for(k=0;k<3;k++) printf(\ printf(\ 5. 以下程序输出的第三行结果是__(7)__11__。 #include {int n,*m;}*p,*q; int d[5]={10,20,30,40,50}; struct s arr[5]={{100,&d[3]},{200,&d[4]},{300,&d[0]}, {400,&d[1]},{500,&d[2]}}; main() {q=p=arr; printf(\ printf(\ printf(\ q+=3; printf(\ 6. 有以下程序 #include { if(*s==t) *s=t-'a'+'A'; s++; }} main() { char str1[100]=\ ss(str1,c); printf(\ 程序运行后的输出结果是_(8)_ abcDDfefDbD ____。 7. 下面程序的运行结果为: (9) 。 #include int i=2; /*i 全局变量*/ void func1(int i) { i=func2(); printf(\ int func2() /*func2 函数中变量i为全局变量*/ { if(i<3) { i+=2; func1(i); } return i;} void main() { int i=0; func1(i); printf(\ 8. 以下程序的输出结果是___(10)_ hane_____。【本题跳过】 char *fun(char *s) { int i ,j; for(i=j=0;s[i]!='\\0';i++) if(s[i]!='c')s[j++]=s[i]; s[j]='\\0';return s; } main() {printf(\ 三、完善程序题(20分,每空2分) (注意:请将答案按编号填入答题纸的指定位置) 1.输入百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。 (注:假设输入的成绩在0到100之间)。 #include {float score; char grade; scanf(\ switch( (1) ) (int)score/10 /(int)(score/10) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break; (2) ;break; } printf(\成绩是%f,相应的等级是%c\\n\ 2.以下程序采用递推法计算某一级数的近似值,n取某一值使得|x(2n+1)/n!|<0.000001时则停止计算。级数如下: x3x5x7x(2n?1)x-+-+??+ 3?1!5?2!7?3!(2n?1)?n!#include {float x, t, sum, s=1; int n=0; scanf(\ t=x; sum=t; while( (3) fabs(t) >=1e-6) {n++; s=-s; t=t* (4) x*x/n ; sum=sum+s*t/ (5) 2*n+1 ; } printf(\ 3. 以下程序由终端键盘输入一个文件名,然后把输入的字符依次存放到该文件中,用#号作为结束输入的标志。 #include {FILE *fp; char ch,fname[10]; printf(\ gets(fname); if((fp=_____(6)_ fopen(fname,”w”)________________)==NULL) {printf(\ printf(\ while( (7) (ch=getchar())!=’#’ ) fputc(ch,fp); fclose(fp); } 4. 设某班级有学生30名,学期末统计每位学生各课程成绩总分后,将前10名学生的学号、姓名、总分张榜公布,以下程序输出张榜清单。 #define N 30 main() {struct STU {long num; char name[20]; int score; }; struct STU a[N],t; int i , j , k; for(i=0;i scanf (\ for(i=0;i for(j=i+1;j {____(8)t=a[i]______;__(9)_a[i]=a[k]_______;__(10)a[k]=t_______;}} printf(\ Name Score\\n\ for(i=0;i<10;i++) printf(\ 5. 编写一个函数实现将字符串s1和字符串s2合并(不得使用strcat函数),合并后的字符串按其ASCII码值从小到大进行排序,相同的字符在新字符串中只出现一次。 #include (11) #include void str_link(char *s1,char *s2) { int i=0,k; k=strlen(s1); while(s2) { *(s1+k+i)=*s2++; i++; } (12) s1[k+i]=’\\0’ ; } void sort(char *s1) { int i,j,k; char t; k=strlen(s1); for(i=0;i void del_char(char *s) { int i,k,j=0; k= (14) strlen(s) ; for(i=0;i (15) continue else s[j++]=s[i]; s[j]='\\0'; } void main() { char str1[79]=\ str_link(str1,str2); puts(str1); sort(str1); puts(str1); del_char(str1); puts(str1); }
正在阅读:
2022江西高考612分能报什么大学 612分能上哪些院校03-29
中医学试题及答案(3)04-13
计算机二级数据库access操作题答案01-29
2012采矿学练习题03-12
广东省梅州市2013届高三历史总复习质检试题岳麓版10-17
浅谈土地储备制度的问题与对策06-01
浅谈幼儿美术活动的指导09-28
钻井电气设备1--电工基本知识06-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 期末
- 试卷
- 年第
- 解析
- 学期
- 语言
- 2013
- 2014
- 医院优质服务年活动方案
- 《棋王》分析
- 计量经济学习题与解答2.范文
- 电路与电子技术基础习题答案10
- 会泽县大海草山风景区融资模式研究(1)
- 四川理工学院《物理化学》练习题5
- 人民警察中级执法资格考试(公共部分全集)最新最全题库4
- 湖北省黄冈市救助管理服务机构名录2019版265家
- NO1、北京石景山区公开招考公务员公告
- 广东省公开选拔副厅级领导干部党政群类考察对象名单4
- 中国养生馆市场竞争格局及发展定位分析报告(2013-2017)
- 现代优化算法matlab实现
- proe教材 - 图文
- 福建省各市2019年中考数学分类解析专题7:统计与概率
- 中国果脯蜜饯行业市场前景分析预测年度报告(目录) - 图文
- RIP实验学习笔记
- 关于信访调查
- 机场中央空调设计实践
- 某某县水污染防治工作调研报告
- 《郑伯克段于鄢》原文翻译及作品欣赏-古文观止