2012-2013秋季学期计算机学院程序设计基础试题A 下载本文

内容发布更新时间 : 2024/6/9 21:36:22星期一 下面是文章的全部内容请认真阅读。

黑龙江大学2015-2016学年第一学期考试试卷

订 线

typedef struct student (院系: 计算机科学技术学院、软件学院 专业:计算机科学与技术、软件工程、物联网工程 年级: {char name[20]; long num; float score; 2015 考核形式: 闭卷 命题人:馬天鑫 审核:郭兴凯) }STUDENT; 2015-2016学年第一学期程序设计基础试卷 6. 下面的定义中, 对成员name的访问正确的是( )。 院 系 年 级 专 业 姓 名 学 号 考试课程 题 号 一 二 三 四 总分 评卷人 复查人 STUDENT stu1, *p ; p=&stu1; 分 数 20 10 30 40 100 A.scanf (“%s”, name); B. scanf (“%s”, p->name); C.scanf (“%s”,&name); D.scanf (“%s”, &stu1.name); 得 分 7. 设有说明:char w; int x; float y; double z;则表达式x*w-y+z值的数据类型为( )。 得分 评卷人 一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题A. float B. char C. int D. double 末括号里)(本大题共10小题,每小题2分,总计20分) 8. 以下对二维数组a的正确说明是( )。 1.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。 A. int a[3][]; B. float a(3,4); C. double a[2][4]; D. float a(3)(4); A.地址传递 9. 判断字符串a和b是否相等,应当使用( )。 B.单向值传递 A.if(a==b) B.if(a=b) C.由实参传给形参,再由形参传回给实参 C.if(strcpy(a,b)) D.if(strcmp(a,b)==0) 10.有以下程序 D.由用户指定传递方式 #include 2.在C 语言程序中,在函数内部定义的变量称为( )。 void main() { int *p, *q, k = 1, j=10 ; A、全局变量 B、局部变量 C、外部变量 D、内部变量 p=&j; q = &k ; p = q ; (*p)++; 3若有定义:int *p[4];则标志符p( )。 printf(\A. 是一个指向整型变量的指针 } 则该程序运行后的输出结果是( )。 B. 是一个指针数组名 A.1 B.2 C. 10 D. 11 C. 是一个指针,它指向一个含有四个整型元素的一维数组 D. C语言不允许这样定义语句 得分 评卷人 二、改错题,指出错误并说明错误原因或改成正确的。(本大题共5 小题,每小题2分,总计10分) 4.以下描述中错误的是( ) A.字符数组中可以存放ASCII字符集中的任何字符 1.void main() B.字符数组中的字符串可以整体输入、输出 { float a,b; scanf(“%f%f”,a,b); C.字符数组中只能存放键盘上可以找到的字符 printf(“%f,%f\\n”,a,b); D.不可以用关系运算符对字符数组中的字符串进行比较 } 装 5. 设int a[10], *p; p=a; 下面的使用正确的是 ( )。 错误原因: 订 A.*p=0; B.a[10]=10; C.a++; D.p=a[0]; 线

共 4 页 第 1 页

黑龙江大学2015-2016学年第一学期考试试卷

装 订 线

2.void main( ) { int *p; *p=10; 得分 评卷人 三 、读程序,写程序的结果或填空(本大题共5小题,每小题6分,总计30分) 1.给出下面程序的运行结果。 #include 院 系 年 级 专 业 姓 名 学 号 考试课程 printf(“%d\\n”,*p); } int func(int b[],int n) 错误原因: { int i,s; s=1; for (i=0;i<=n;i++) s=s*b[i]; 3.void main( ) return (s); { } int ,k,b[4]={2,4,6,8,10}; void main() for(k=0;k<4;k++) { int k,a[]={1,2,3,4,5,6,7,8,9}; printf(“=”,b[k]); } k=func(a,3); 错误原因: printf(\ } 4.void main() 运行结果__________________________。 { char s[100]; s=”hello”; 2. 写出如下程序的运行结果。 printf(“%s\\n”,s); #include void main() } { int m=6,n; 错误原因: for(n=0;n

共 4 页 第 2 页

黑龙江大学2015-2016学年第一学期考试试卷

装 订 线

3.下面函数的功能是计算指针p所指向的字符串的长度(即实际字符的个数)请填空 。 int Mstrlen(char *p) { int len=0; for(;*p!= _________;p++) len=_____________; void main(){ FILE *fp; fp=fopen(“a.dat”, “rb”); if(fp==NULL){ printf(“can’t open file\\n”); 院 系 年 级 专 业 姓 名 学 号 考试课程 return len; exit(0); } } Disp(fp); 4.以下程序段的功能是统计单向链表中节点的个数,其中head为指向第一个节点的指针。 fclose(fp); 请填空。 } struct link { char data; struct link *next; 得分 评卷人 五、编程题(本大题共4小题,第1小题每题10分,第二、三小}; 题9分,第四题12分,总计40分) int count(struct link *head) { struct link *p; 1.如果一个正整数m的所有小于m的因子(包括1)加起来正好等于m本身,那么就称m为完数。例如6,就是一个完数,因为6=1+2+3。请编写一个函数int int c=0; p=head; Isperfect(int m)判断一个数m是否完数,然后从键盘输入一个正整数判断其是否是完数。(10分) while(_________________) { c++; p=_________________; } return c; } 5.下面的程序的功能是:从一个二进制文件a.dat中读入结构体数据,并把数据显示在屏幕上。请填空。 #include #include struct rec{ int num; float total; }; void Disp( ) { struct rec r; while(!feof(fp)){ 装 fread(&r, ,1,fp); printf(“%d,%f\\n”,r.num,r.total); 订 } } 线

共 4 页 第 3 页