您的当前位置:首页正文

电子科大2012复试笔试题

2023-01-11 来源:个人技术集锦
程序设计C语言

一、指出程序段中的错误:分析错误的原因,并进行修改。(每个5分,共10分)、

1、函数swap将两个字符串(字符数组作实参,长度不超过100)的内容进行交换。 Void swap(char *pa,char *pb) { char *temp; temp=pa; pa=pb; pb=temp; }

2、程序片段为: char pa[]=”ABCDE”; char *pb=”EFG”; pb[1]=’A’; pb=pa;

strcpy(pa,”ABCDEFGXYZ”); pb=”DU”;

二、简答题(共30分)

1、设arr为整型数组,num和item为整型变量,N=数组元素个数-1。需要查找item是否在数组中,如果程序片段为 for(num=N;arr[num]!=item;num--); printf(“%d\\n”,num); 可能导致的异常结果是什么?为什么?(8分)

2、设有递归函数: int value(int n) { int x; if(n==0)return0; else

{

scanf(“%d”,&x);

return(value(n-1)+x); }

}

如该函数被调用时,参数n值为4,输入的x的值依次为11,22,33,44,函数调用结束时返回值是多少?并用图描述函数递归执行过程。(10分)

3、数组作为函数参数有三种形式: 1)实参是数组元素; 2)形参是指针,实参是函数; 3)函数的形参和实参都是数组

分别是采用什么参数传递方式?(5分)

4、采用高度抽象概念有利于程序设计,C语言中循环语句

do s while(B);

对应的显示控制结构是什么?请使用伪代码形式(通过条件转移指令)表达。(7分)

三、程序设计(共45分,每题的算法50%,语法30%,完整20%)

1、编写完整程序:利用2个函数对输入的两个分数进行加、减、乘、除四则运算和输出用分数表示的结果。(注:输入格式为:%ld/%ld%c%ld/%ld,输出格式为%ld/%ld),例如:输入1/4+1/3,输出:7/12 (10分)

2、编写函数,将单链表进行逆序,即表头变表尾,表尾变表头(15分) 其中:节点定义为:struct node{int num, struct node *next };

函数原型为:void turn(struct node *head)

3、编写完整程序:接收从键盘输入的仅由数字字符构成的字符串(假设字符串的最大长度为50),统计并输出每个数字(0~9)的重复次数。(8分)

4、编写完整程序,采用结构数组和指向结构的指针,接收输入的100个学生信息(包括学号和C语言课程期末总成绩),输出最高、最低成绩和分别对应的学号(可能有多个同学都是最高分,可能有多个同学都是最低分)。(12分)

四、从程序执行效率方面考虑,请简述C语言采取的一些措施和原因。(15分)

因篇幅问题不能全部显示,请点此查看更多更全内容