厦门大学《C语言程序设计》期末模拟考试题
相信不少厦门大学的同学都会为《C语言程序设计》这门公共课的复习感到头疼吧!这次本up主放出厦门大学《C语言程序设计》课程的一份期末模拟考试题,供大家参考借鉴,高效复习备考!完整试题共10页,包括选择题、程序阅读题、改错题、编程题,由于篇幅限制只放出前2页选择题部分和最后2页编程题部分,需者自取~
关注我+给本文点赞投币收藏+截图私信我,即可领取完整模拟试题文档~~~
祝大家学习进步,考试顺利!!!
《C程序设计基础》模拟考试题
一、选择题(每题2分。共23道选择题)
1、 关于C程序的叙述,错误的说法是(B)
A、 C程序总是从主函数开始执行
B、 C程序中定义的第一个函数是主函数
C、 在主函数中可以调用其他函数
D、 一个C程序可以包括多个函数
2、 C语言的基本数据类型包括(A)
A、 char
B、 struct
C、 string
D、 typedef
3、 C语言的关键字是(A)
A、 while
B、 printf
C、 main
D、 FILE
4、 错误的C标识符是(D)
A、 e2
B、 name_
C、 A_B
D、 2e
5、 在下列运算中,优先级最低的运算符是(B)
A、= =
B、=
C、&&
D、+
6、设a、b和c都是int型变量,且a=7,b=8,c=9,则表达式(a*b)/c + 6 - 14%c的值是(B)
A、6
B、7
C、8
D、9
7、下列一维数组说明中,错误的是(C)
A、int a[]={1,2,3};
B、int a[5];
C、int n=5, a[n];
D、int a[5]={1,2,3};
8、执行语句:printf(“a\nb”)输出的结果是(C)
A、a\nb
B、ab
C、第一行输出a,第二行输出b
D、不能输出
9、要表示年龄(age)在18到25之间,正确的表达式是(B)
A、18<=age<=25
B、18<=age && age<=25
C、18<=age || age<=25
D、18<=age and age<=25
10、设有定义int a,*p;下列赋值语句中,正确的是(B)
A、p=a;
B、p=&a;
C、p=*a;
D、*p=&a;
11、若已经定义char a[10]={“abcd”}, *p=a;则表达式*(p+1)的值是(C)
A、abcd
B、bcd
C、b
D、语法错误
12、若已经定义struct stu{int a,b; } student; ,则下列叙述中正确的是(B)
A、stu 是结构变量
B、student 是结构变量
C、student 是结构类型
D、a和b是结构型变量
13、设有定义int a[10], *p=a; 下列对数组元素a[1]的引用中,错误的是(B)
A、p[1]
B、*(++a)
C、*(++ p)
D、*(a+1)
14、下列叙述中,错误的是(D)
A、不同函数中可以使用相同的变量名
B、全局变量和局部变量可以同名
C、形式参数是局部变量
D、main() 函数中定义的变量在整个程序中都可
15、设有函数定义:void p(int x){printf(“%d”, x);} 则正确的函数调用是(A)
A、p(3);
B、a=p(3);
C、printf("%d"; p(3));
D、p(int x);
16、有如下程序段union u{int a; int b; float c;}vu; vu.a=1; vu.b=2; vu.c=3;则vu.a的值是(D)
A、1
B、2
C、3
D、以上都不对
17、设有如下定义:int x=2 ,y; int fun(int *a){return *a+1;}下列函数调用中,实际参数正确的是(B)
A、y=fun(x);
B、y= fun (&x);
C、y=fun(*x);
D、y=fun(a);
18、设有宏定义#define N 3+2,则语句printf(“%d”, N*N);的输出结果为(A)
A、11
B、25
C、10
D、3;5
19、执行scanf(“%d+%d”,&a,&b);时,正确的键盘输入是(C)
A、3,5
B、3 5
C、3+5
D、3;5
20、执行if(a<=b){a=b;b=a;}else{a++;++b;}语句后,正确的说法是(C)
A、当条件满足时变量a和b的值对换
B、当条件满足时变量a和b的值不变
C、当条件不满足时变量a和b的值各增加1
D、当条件不满足时变量 b的值增加1,a不增加
21、设已定义int a=3, b=4; 执行if(a=b)printf(“aaa\n”);else printf(“bbb\n”);语句后,正确的说法是(A)
A、输出 aaa
B、输出 bbb
C、编译时会出错
D、运行时会出错
22、设有说明语句int x=1, y=2; 则执行表达式x=y= = 3后,变量x的值是(A)
A、0
B、1
C、2
D、3
23、已定义float f=1.2;执行语句printf(“%d\n”,f);正确的说法是(C)
A、输出 1.2
B、输出 1
C、语法错误
D、可以输出,但不是1.2和1
四、编程题(只要实现题目要求即得6分,完成部分功能适当得分)
1、请在考生文件夹下的prog1.cpp文件中编写程序,要求:输入圆的半径r,计算并输出其周长C和面积S。(c=2*3.14159*r,s=3.14159*r*r)完成后保存并运行程序.
#include
<stdio.h>
#define pi
3.1415926
void main()
{
int r;
printf("请输入半径:");
scanf("%d",&r);
float C=2*pi*r;
float S=pi*r*r;
printf("C=%f,S=%f\n",C,S);
}
2、请在考生文件夹下的prog2.cpp文件中编写程序,要求:商场进行打折销售,如顾客一次购买商品100元~999元按9折结算,如一次购买商品1000元以上,则按8折结算。已知某顾客的采购金额,求该顾客的实际支付金额。完成后保存并运行程序.
#include <stdio.h>
void main()
{ float
a;
printf("请输入采购金额:");
scanf("%f",&a);
if(a>=100&&a<=999)
a=a*0.9;
else
if(a>=1000)
a=a*0.8;
printf("应付金额为:%f\n",a);
}
3、请在考生文件夹下的prog3.cpp文件中编写程序,要求:输出所有个位数和百位数之和为10的三位正整数 (如:109,119,129, ......, 981,991) ,每行输出5个数,各个数之间用"\t"分隔。完成后保存并运行程序.
#include <stdio.h>
void main()
{
int i,j=0;
for(i=100;i<999;i++)
{
if(i/100+i%10=
=10)
{
printf("%d\t",i);
j++;
if(j%5==0)
printf("\n");
}
}
}