2023年武汉工程大学研究生考试自命题真题 816C语言与程序设计基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工程大学
2023 年全国硕士研究生招生考试
考试科目代码及名称:816 C 语言与程序设计基础
一、单项选择题(本大题共 15 小题,每小题 3 分,共 45 分)
1.下面语句中正确的表达式有 ( ) 条。
(1)cout >> 3 + 4;
(2)COUT << 3 * 4;
(3)cout << 3 / 4;
(4)cout < < 3 - 4;
A. 3 B. 2 C. 1 D. 0
2. 能用来判断变量z“在2018 到2022 之间(含2018 和2022)”的表达式是 ( )。
(1)( x <= 2022 & x >= 2018 )
(2)( x >= 2018 ) && ( x <= 2022)
(3)( 2018 <= x) && ( x <= 2022)
(4)( 2018 <= x <= 2022)
A.只有(2)正确
B.只有(2)、(3)正确
C.只有(2)、(3)、(4)正
确 D.均正确
3.以下程序片段共输出( )个"WIT"。
for (int i=0; i<3; i++)
for(int j=1; j<=6; j++)
{
cout <<"WIT"<<endl;
if (j%2==0)
break;
}
A. 9 B. 6 C. 2 D. 3
4.下面数组定义/初始化的写法,不正确的是( )。
A.int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
B.int a[10];
C.int a[] = {0};
D.int a[];
5.以下选项中均满足C语言标识符命名规则的是( )。
A.PI _main
B. float HK C. 3cal _4NT D.that_is bad-person
6.设有定义语句i nt a[3][3];和函数调用语句s ort(a,3); 则正确的函数声明语句是( )。
A.void sort(int a,n);
B.void sort(int a[][],int n);
C.void sort(int a[][3],int n);
D.void sort(int a[][3], n);
7.以下代码执行后,变量k的值是( )。
int k=0;
while (k<=3) k++;
A.4 B.3 C.0
D.1 8.以下关于运算符优先顺序的描述中,
正确的是( )。
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符;
B.算术运算符<关系运算符 <赋值运算符<逻辑与运算符;
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符;
D.赋值运算符<关系运算符<逻辑与运算符<算术运算符。
9.以下关于运算符n ew 的用法,正确的有( )个。
(1)int *p=new int[4];
(2)int*q=new int{100};
(3)char *s=new char[34.5];
(4)double *pd= new double[10*15];
A.0 B.1 C.2 D.3
10.根据下面的定义,能输出字母s的语句是( )。
struct Person
{ char title[20];int code;};
Person book[4]={"Physics",17,"Mathematics",18,"English",20,"History",18}; A.cout<<book[0]. title[3];
B.cout<<book[1].title[11];
C.cout<< book[2].title[6];
D.cout<< book[4].title[2];
第二页共八页
11.设整型变量a为5,下列哪个表达式的值等于0( )。
A.a&&(a>0) B.!a||a C. a%=a
D.a>=a
12.若有以下的声明语句,则下列选项中,其结果与表达式"*(a+2) "相等的是( )。
int i=2,a[]={0,2,4},*b;
b=&i;
A.a[0] B.*a+i C.*(a+b) D.*(a+*b)
13.在类型相同的两个指针变量之间,不能进行的运算是( )。
A.< B.= C./ D.-
14.若有以下的定义语句,则数值为3的表达式是( )。
int w[3][4]={{0,1},{2,3},{4,5}};
int (*p)[4]=w;
A.*w[1]+1 B.p++,*(p+1) C.w[2][2] D.p[1][1] 15.以下程序运行后,输出结果是( )。
int main( )
{ char good_man='Y';
if (good_man>='F')
good_man=good_man-'F'+'f';
else
good_man='X';
cout<<good_man;
return 0;}
A. 'F' B.y C.Y D.X
二、填空题(本大题共 10 个空,每空 1.5 分,共 15 分)
1.若a=3,b=4,c=5,以下i f 语句执行后,a、b、c 中的值分别是,,。
if(a>c)
b=a;a=c;c=b;
2.若x为整型变量,计算表达式x='c'-'a'后,x 的值为。
3.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,试根据程序功能填空。
#include<iostream.h>
int main()
第三页共八页
cin>>x;
max=x;
min=x;
while( )
{if(x>max) ;
if(x<min) ;
;
}
cout<<"max="<<max<<",min="<<min<<endl;
}
4.在C语言程序中,用关键字定义长整型变量。
5.当a=3,b=4,c=5 时,表达式a>b!=c 的值是。
三、读程序,写运行结果(本大题共 9 小题,每小题 5 分,共 45 分)
1.#include<iostream.h>
int main()
{ int a=2,x;
x=a--;
cout<<x<<" "<<a<<endl;
x=--a;
cout<<x<<" "<<a<<endl;
x=a++;
cout<<x<<" "<<a<<endl;
x=++a;
cout<<x<<" "<<a<<endl;
return 0;
}
输出结果是
2.#include <iostream.h>
int main()
{
int a=10;
if(a>10)
cout<<(a>10);
else
cout<<(a<10);
cout<<endl;
return 0;
}
输出结果是
3.#include <iostream.h> int main()
{
int n=7;
while(n<10)
{ n=n+1;
cout<<n<<endl;
}
return 0;
}
输出结果是
4.#include <iostream.h> int main( )
{
int a[5],i,k=0;
for(i=0;i<5;i++)
a[i]=i;
for(i=0;i<5;i++)
k=k+a[i]+i;
cout<<k<<endl;
return 0;
}
输出结果是
5.#include <iostream.h> int d=1;
void fun(int p)
{int d=5;d=d+p--;
cout<<d;}
int main()
{
int a=3;
fun(a);
d=d+a--;
cout<<d<<endl;
return 0;
}
输出结果是
6.#include<iostream.h>
int main()
{
int x,y;
for(y=1,x=1;y<=40;y++)
{ if(x>=10) break;
if(x%3==1)
{x=x+5;continue;}
x=x-3;
}
cout<<"x="<<x<<",y="<<y<<endl; return 0;
}
输出结果是
7.#include<iostream.h>
int fun2(int a,int b)
{ int c;
c=(a*b)%3;
return c;
}
int fun1(int a,int b)
{ int c;
a=a*a;
b=b*b;
c=fun2(a,b+fun2(a,b));
return c*c;
}
int main()
{
int x=2,y=8;
cout<<fun1(x,y)<<endl;
return 0;
}
输出结果是
8.#include<iostream.h>
int main()
{
int a=1,b=2;
int mm(int,int);
cout<<mm(a,b)<< ",";
cout<<mm(a,b)<<endl;
return 0;
}
int mm(int m,int n)
{
static int s=0;
s++;
return s*(m+n);
}
输出结果是
9.#include<iostream.h>
struct Student
{ int id;
double score;
};
int main()
{ Student a[3]={2022001,89,2022002,92,2022003,90};
Student *p=a;
cout<< p->id++ <<"\t"<<p->score<<endl;
cout<< (p++)->id <<"\t"<<p->score<<endl;
cout<<(*p).id++<<"\t"<<p->score<<endl;
return 0;
}
输出结果是
四、编程题(本大题共 3 小题,每小题 15 分,共 45 分)
说明:应注意对程序中的核心代码作适当注释。
1.使用 for 循环语句求 10 的阶乘。
2.编写求两个正整数的最大公约数的普通函数,在主函数中输入任意两个正整数,通过调用这个函数,输出这两个正整数的最大公约数。
3.利用以下级数公式和 do while 循环语句,计算cos x 的近似值,精度为 10-8。
2 4 6
x x x
cos x 1
2! 4! 6!。