内容发布更新时间 : 2024/11/5 14:46:31星期一 下面是文章的全部内容请认真阅读。
南京信息工程大学试卷(理工科)
2011 - 2012 学年 第 2
学期 C语言程序设计 课程试卷( A 卷)
本试卷共 8 页;考试时间 120分钟;任课教师 课程组 ;出卷时间 2012 年 6月
学院 专业 2011 年级 班 学号 姓名 得分
一、单项选择题 (每小题 1分,共 15分)
1.C语言规定:在一个源程序中,main的位置
A)必须在最开始 B)必须在系统调用的库函数后面 C)可以任意 D)必须在最后 2.下面四个选项中,均是合法的用户标识符的选项的是 A) A p_o do B)float lao _A C) b-a goto int D) _123 temp INT 3.判断字符型变量c1是否为大写字母的正确表达式为 A)’A’<=c1<=’Z’ B)(c1>=A)&&(c1<=Z) C) (‘A’>=c1)||(‘Z’<=c1) D) (c1>=’A’)&&(c1<=’Z’) 4.表达式18.0/4*sqrt(4)/8值的数据类型为 A)float B)char C)double D)不确定
5.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 A)7 B)8 C)6 D)2 6.若对两个数组a和b进行初始化 char a[]=\
char b[]={'A', 'B', 'C', 'D', 'E', 'F'};
则下列叙述正确的是 。 A) a与b数组完全相同 B) a与b数组长度相同
C) a与b数组都存放字符串 D) 数组a比数组b长度长 7.若定义x为长整型变量,则能正确输入x值的语句是 。 A)scanf(“%d”,x); B)scanf(“%d”,&x); C)scanf(“%ld”,&x); D)scanf(“%ld”, x); 8.以下正确的函数定义是 。
A)double fun(int x, int y) B)double fun(int x,y) { {
z=x+y ; int z ;
return z ; return z ; } }
C)fun (x,y) D)double fun (int x, int y) { {
int x, y ; double z ; double z ; z=x+y ; z=x+y ; return z ;
return z ; } } 9.设有程序段:char s[ ]=”Nanjing”; char *p ; p=s ;则下面叙述正确的是 。
A)数组s中的内容和指针变量p中的内容相等 B)s和p完全相同 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 10.下面程序段 int k=2;
while (k=0) {printf(“%d”,k);k--;}
则下面描述中正确的是 。
A)while循环执行10次 B)循环是无限循环
C)循环题语句一次也不执行 D)循环体语句执行一次 11.已知下列程序段:
char a[3], b[]=\a=b;
printf(\
则 。
A) 运行后将输出nuist B) 运行后将输出nu C) 运行后将输出nui D) 编译出错
12.若已定义char s[10];则在下面表达式中不表示s[1]的地址是 。
A)s+1 B)s++ C)&s[0]+1 D)&s[1]
13.若有定义:int (*p)[4];则标识符p 。
A)是一个指向整型变量的指针 B)是一个指针数组名
C)定义不合法 D)是一个指针,它指向一个含有四个整型元素的一维数组 14.以下对结构体变量成员不正确的引用是 。
struct person {
char name[20]; int age; int sex ; } pup[5], *p=pup ; A)scanf(“%s”,pup[0].name); B)scanf(“%d”,&pup[0].age); C)scanf(“%d”,&(p->sex)); D)scanf(“%d”,p->age); 15.函数调用语句:fseek(fp,-10L,2)的含义是 。
A)将文件位置指针移到距离文件头10个字节处 B)将文件位置指针从当前位置向后移动10个字节 C)将文件位置指针从文件末尾向后退10个字节 D)将文件位置指针移到当前位置10个字节处
二、基础知识填空(每空2分,共20分)
1.在C语言中,没有专门的输入输出的语句,其输入输出都是用函数来完成的,格式化输出操作是由库函数 [1] 完成的。
2.三种基本程序结构是顺序结构、选择结构和 [2] 。
x2?y23.数学表达式的C语言表达式是 [3]
a?b4. 设有数组定义: char array [8]=\则数组 array所占的空间为 [4] 5.y是无符号整型变量,写出y是闰年的逻辑表达式是: [5] 。 6.用break语句可以使程序流程跳出switch语句体,也可以在循环结构中止 [6] 循环体。 7.main函数的函数原型为:int main (int argc, char *argv[]); 其中argc表示 [7] 。 8.若有定义
#define N 2
#define Y(n) ((N+1)*n) 则执行语句z=2*(Y(5+N));后,z的值为 [8] 。 9.若有以下程序段:
int a=1,b=2,c=3; struct dent {
int n ; int *m ;
} s[3] = {{101,&a},{102,&b},{103,&c}}; struct dent *p=s ;
则表达式*(++p).m的值是 [9] 。
10.已知某程序中有预处理命令“#include
三、程序阅读题(每题3分,共21分)
1.输入9,5回车后,下面程序执行结果是 #include
void swap(int *,int *); int main() {
int a, b, *pa=&a, *pb=&b; scanf(“%d,%d”,&a,&b); swap (pa,pb);
printf(“a=%d,b=%d\\n”,a,b); return 0; }
void swap (int *p1,int *p2) {
int p; p=*p1; *p1=*p2; *p2=p;
printf(“*p1=%d,*p2=%d\\n”,*p1,*p2); }
2.以下程序输出结果是 。 #include