2016高级语言程序设计考卷B及参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。





六 合计
满分 28
24
18
30
100
得分
专业 班级
得分
一、单项选择题 (本大题共 14 小题,每小题 2 分,共 28 分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面
表格中的对应位置。错选、多选或未选均无分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
A.x
B.p
C.&x
D.&*p
12.设 char s[10],*p=s; 下列语句中错误的是
A.p=s+5;
B.*p=s[0]; C.s[2]=p[4]; D.s=p+5;
13.在 C++中,函数的形式参数是 A.局部变量 B.全局变量
C.静态变量
D.外部变量
14.有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3];
1 --> 2 --> 3 --> 4 --> 5 --> 6。 #include <iostream.h> struct Node { int data;
Node *next; }; typedef Node * LinkList; void print(LinkList head) { Node *p; if (head==NULL) return; p=head; while (p->next) { cout<<p->data<<" --> ";
sum2+=f2(i); cout<<"S1="<<sum1<<",S2="<<sum2<<endl; return 0; }
输出:
5.
#include <iostream.h> int f(int k) {
return (k<0?(k*=2):f(k-2)+k); } int main() {
cout<<f(3)<<endl; return 0; } 输出:
while(m>n) m-=n; while(n>m) n-=m; } cout<<m<<endl; return 0; } 输出:
2
3. #include <iostream.h> int main() {
char *s="12134";int k=0,a=0; while(s[k]!='\0') {
得分
三、程序填空题(本大题共 2 小题,每空 3 分,共 18 分)
请在程序中的下划线处填空,将程序补充完整。 1.下面程序执行后,按从小到大的顺序输出用 0 至 9 之间的不同的数字组成的全部 三位数(从 102 到 987 共 648 个)。 #include <iostream.h> int main() { int i,j,k,cnt=0;
A.1
B.2
C.3
D.4
6.设有定义 char a[]="xyz",b[]={'x','y','z'};
"<<sizeof(b)<<endl;的输出结果为
A.3 3
B.3 4
C.4 3
,则语句 cout<<sizeof(a)<<" D.4 4
7.如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,
B.int a[2][ ]={1,2,3,4,5,6}; D.int a[2,3]={1,2,3,4,5,6};
10.设宏定义 #define P(x) (x)/(x)
则执行语句 cout<<P(4+6)<<endl;后的输出结果是
A.1
B.8.5
C.11
D.11.5
11.若变量已正确定义并且指针 p 已经指向变量 x,则*&x 相当于
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是
A.a[0][1]
B.a[1][0]
C.a[1][1]
D.a[1][2]
得分
二、程序阅读题(本大题共 6 小题,每小题 4 分,共 24 分)
请将下面各程序的输出填写在下划线处。
1. #include <iostream.h> int main() {
insert(head,a[i]); print(head); return 0; }
void insert(LinkList &head,int x) {
}
6
…………装订线 ……………… 装订线内不要答题,不要填写信息………………装订线 …………
武汉理工大学考试试题答案(B 卷)
2016 ~2017 学年 1 学期 高级语言程序设计 课程
一、单项选择题 (本大题共 14 小题,每小题 2 分,共 28 分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
ABBCDCBDCAADAC
二、程序阅读题(本大题共 6 小题,每小题 4 分,共 24 分)
1.35
2.7
3.k=5,a=14
4.S1=33,S2=10
5.2
6.8 y[1]=3
6.
#include <iostream.h> int main() { int x=3,y[7]={1,3,5,8,9,11,12};
int t=0,b=7,m; while (b>=t) {
m=(b+t)/2; if (y[m]==x) { cout<<"y["<<m<<"]="<<y[m]<<endl;
if(k%2==0) a=a+(s[k]-'0'+1);
else a=a+(s[k]-'0');
k++; } cout<<"k="<<k<<",a="<<a<<endl; return 0; } 输出:
4.#include <iostream.h> int f1(int a) { static int s1=1;
s1*=a; return s1; } int f2(int a) { auto int s2=1; s2*=a; return s2; } int main() { int sum1=0,sum2=0,i; for(i=1;i<=4;i++)
sum1+=f1(i); for(i=1;i<=4;i++)
3.void insert(LinkList &head,int x) {
p=p->next; } cout<<p->data<<endl; } void insert(LinkList &head,int x); int main() {
int a[6]={4,1,2,3,6,5},i; LinkList head; head=NULL; for (i=0;i<6;i++)
}
7
2. char *huiwen(char *str) {
char *p1,*p2; p1=str; p2=str+strlen(str)-1; while (p1<p2) {
if(*p1++!=*p2--) break; } if (p1>=p2) return ("yes!"); else return ("no!"); }
三、程序填空题(本大题共 2 小题,每空 3 分,共 18 分)
1.(1)j==i
(2)k!=i && k!=j (3)100*i+10*j+k
2.(1)n%base (2)n/base
(3)b[c[i]]
四、程序编写题(本大题共 3 小题,每小题 10 分,共 30 分) 1.#include <iostream.h> #include <math.h> int main() { int n,m,t; cin>>n; t=n; while (t>=10) { m=0; while (t) { m=m+t%10; t=t/10; } t=m; } cout<<t<<endl; return 0;
则这个变量的存储类型应该被说明为
A.自动变量 B.静态变量
C.外部变量 D.寄存器变量
8.C++中,指针变量的值只能是
A.变量名
B.变量的值
1
C.变量的别名 D.NULL 或地址值
9.定义二维数组并初始化,正确的是 A.int a[ ][ ]={1,2,3,4,5,6}; C.int a[ ][3]={1,2,3,4,5,6};
…………试卷装订线 ……………… 装订线内不要答题,不要填写考生信息………………试卷装订线 …………
学院
武汉理工大学考试试卷(B 卷)
2016 ~2017 学年 1 学期 高级语言程序设计 课程 时间 120 分钟
64 学时, 4 学分,闭卷,总分 100 分,占总评成绩 70 % 年 月 日
题号 一
for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(_____________) continue; else for(k=0;k<=9;k++) if(____________________) { cout<<_______________ <<" cnt++; }
// (1)
编写程序,输入一个正整数,输出它的数根。
2.编写函数 char *huiwen(char *str)检查一个字符串 str 是否是回文,当字符串是回文时, 函数返回字符串“yes!”;否则函数返回字符串“no!”。所谓回文即正向与反向的拼写都一样, 例如:adgda。
5
3.编写 void insert(LinkList &head,int x) 函数,使得下列程序运行后,输出
int c[64],base,i;
long n;
cout<<"Enter a number:"; cin>>n;
cout<<"Enter new base:"; cin>>base;
i=0;
do {
c[i]=______________;
// (1)
i++;
n=_________________;
// (2)
3.设 int a=1,b=2,c=3,d=4,f;,执行语句 f=(a!=b)?c++:d++; 后 f 的值是
A(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是
A.0
B.3
C.4
D.10
5.若有定义 int a[4]={1,2,3,4};则 a[a[0]+2 * a[2]-a[3]]等于
int i,j,k,s=0; for (i=1;i<=5;i++)
for (j=1;j<=i;j++) for (k=1;k<=j;k++) s++;
cout<<s<<endl; return 0;
}
输出:
2. #include <iostream.h> int main() {
int m,n; m=63; n=14; while(m!=n) {
} while(n!=0);
cout<<"Transmite new base:";
for(--i;i>=0;--i)
cout<<__________________;
// (3)
cout<<endl;
return 0;
}
4
得分
四、程序编写题(本大题共 3 小题,每小题 10 分,共 30 分)
1.数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那 么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起 来。如此进行下去,直到得到是一位数为止。例如,24 的数根是 6,39 的数根是 3。
学号 姓名
1. 下列转义字符中,错误的是
A.′\108′
B.′\\′
C.′\n′
D.′\xbb′
2.设 char cl; , 则 cl 为小写英文字母字符的正确表达式为
A. ’a’<=c1<=’z’
B.(cl>=’a’)&&(cl<=’z’)
C.(cl>=a)&&(c1<=z)
D.(’a’<=c1)| |(’z’>=c1)
// (2) "; // (3)
cout<<endl<<cnt<<endl; return 0; }
2.将从键盘上输入的十进制数(long 型)以二到十六进制形式输出
#include <iostream>
using namespace std;
int main( )
{ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
break; } else if (y[m]>x) { b=m-1;
cout<<y[m]<<" "; } else { t=m+1;
cout<<y[m]<<" "; } } if(b<t) cout<<"\nNot find!\n"; return 0; } 输出:
3
…………试卷装订线 ……………… 装订线内不要答题,不要填写考生信息………………试卷装订线 …………
相关文档
最新文档