logo资料库

2017年江西师范大学程序设计(C语言)考研真题.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
2017 年江西师范大学程序设计(C 语言)考研真题 一、单项选择题(每小题 2 分,共 30 分) 1.以下叙述正确的是( ) A.在 C 程序中,main 函数必须位于程序的最前面 B.C 语言的每一行中只能写一条语句 C. C 语言本身没有输入输出语句 D.在对一个 C 语言进行编译的过程中,可发现注释中的拼写错误 2.程序中定义以下宏#define S(a,b) a*b 若定义 int area;且令 area=S(3+1,3+4),则变量 area 的值为__________。 A.10 B. 12 C. 21 D. 28 3.判断 char 型变量 ch 是否是大写字母的正确表达式是__________。 A.'A'<=ch<='Z' B.(ch>='A')&(ch<='Z) C.(ch>='A')&&(ch<=Z) D.(A'<=ch)AND(Z>=ch) 4.若有说明: inta[10];则对 a 数组元素的正确引用是____ A.a[10] B. a[3.5] C. a(5) D. a[10-10] 5.设有:intcl=1,c2=2,c3;则执行 c3=cl/c2 后,c3 的值是 _ A.0 B.1/2 C. 0.5 D. 1 6.关于编译预处理命令,不正确的说法是________。 A.宏定义不是 C 语句,末尾不加分号 B.带参宏定义与函数相似但不同 C.一个#include 命令可以指定多个被包含文件 D.文件包含是可以嵌套的 7.已知 int x=10,y=20,z=30;以下语句 if(x>y)z=x; x=y;y=z; 执行后,x、y、z 的结果是________。 A.x=10,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10 D. x=20,y=30,z=20 8.循环语句 for(inti=2;i==0;) printf("?i-);执行次数是__________。
A.无限次 B.2 次 C. 1 次 D.0 次 9.当 a=2,b=3,c=6,d=4 时,执行完下面一段程序后 x 的值是_________。 if(ab)&&(n=c
A.数组的首地址 B.数组第一个元素的值 C.数组全部元素的值 D.数组元素的个数 二、填空题(每空 2 分,共 20 分) 1.如果有变量定义:int a=2,b=80,c=-2;则表达式 a&&bllc 的值是_______________。 2.在 C 语言中,唯一的一个三目运算符是_____________。 3.设 int a[3][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为______。 4.设 struct student{ int no; char name[12]; float score[3]; }sl,*p=&sl; 用指针变量 p 给 sl 的成员 no 赋值 1234 的方法是_______ 5.变量名由字母、数字和下划线组成,并且第一个符号不能是 。 6.设 x,y,z 均为 int 型变量,则描述 x 或 y 中有且只有一个小于 z 的表达式是_________。 7.若函数定义为 int data(){ float x=9.9; retur(x); } 则函数返回的值是_________________ 8.设 inti=5;则语句 while(i>=1)i-;执行后 i 的值为 9.设 x,y,z 和 t 均为 int 型变量,执行以下语句:x=y=z=0;t=++x|++y&&++z;后 t 的值为 _________________。 10.设 fp 为一文件型的指针,以二进制、只读方式打开 D 盘根目录下文件 abc.dat 的语句是 _________________。 三、程序分析题(本大题共 4 小题,每小题 6 分,共 24 分) 1.请写出程序运行后的输出结果。 #include #define N 4 void main(){ int i, j; for(i=0;i void main({ int j=1,t=0; while(j<20){ j=j+1; if(j9 continue;
t+=j; } printf("t=?n",t); } 3.写出下面递归程序的输出结果。 #include #define N 8 long sum(int n){ if(n==0)return 0; else return n+sum(n-1); } void main(){ int i; int s=1; for(i=1;i<=N;i=i+3) s=s*sum(i); printf("Result is:?, s); } 4.写出下面程序的输出结果。 main({ int a[3][3]={1,3,6,7,9,11,14,15,17}; int suml=0,sum2=0,iij; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) suml+= a[i][j]; for(i=0;i<3;i++) for(j=2;j>=0;j--) if(i+j==2) sum2+= a[i][j]; printf("suml=?sum2=?n",suml,sum2); } 四、程序填空题(本大题共 4 小题,每小题 6 分,共 24 分) 1.以下程序将输入一个字母转码输出。转换规则是:将 a/变成乙,将 b'变成 y……,将 Z 变 成 A',将 Y'变成 B'……。请填空。 #include "stdio.h" main(){ char c; c= getchar(); if(c>='A'&&c<='Z')c= (1) ; lse if(c>=a'&&c<="z)c= (2) _; putchar(c); } 2.以下程序实现输出 a,b,c 三个数中的最大者。请填空:
main(){ inta=4,b=6,c=7; int u,v; if(_(1) ) u=; else u=b; if( (2)_) =; else v=c; printf("v=?,v) } 3.以下程序的功能是输出 100 到 200 之间的素数及个数,请填空。 main({ int m,k,i,n=0; for(m=100;m<=200;m++){ for(i=2;i
3.编程打印出字符组成的如下图案,要求一条输出语句只能打印一个符号。 4.某校计算机科学与技术专业某班共有 30 名学生,本学期的主修课程有四门。这四门课程 的名称(对应学分)分别是:高等数学(5 学分)、大学英语(4 学分)、数字逻辑(2 学分)和离 散数学(3 学分),各门课程均为百分制(满分为 100 分,60 分为及格)。编写程序实现以下任 务(要求用二维数组或者结构体数组): (1)计算每个学生获得的学分(成绩及格即可获得该课程学分)和获得学分的课程的加权平均 成绩(不及格课程不计算在内):加权成绩=Z(课程成绩×课程学分)/2 课程学分。 (2)按照获得学分多少和加权平均成绩计算每个学生的排名(排名原则:先按获得学分由多到 少,相同学分再按平均加权成绩由高到低)。
分享到:
收藏