《C语言程序设计》2016-2017学年第一学期期末考试A卷

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

河海大学2016-2017学年第一学期期末考试
《C语言程序设计》试题(A)卷
姓名:班级:学号:成绩:
一、单项选择题(每题1分,20分)
1.若x、i、j、k都是整型变量,则计算下面表达式后x的值为.
x=(i=4,j=16,k=32)
A)4B)16C)32D)52
2.语句#include〈stdio.h>的功能是_________.
A)定义stdio.h B)将stdio.h包含到语句所在的程序中
C)声明stdio.h D)stdio.h包含了语句所在的程序
3.下列四组选项中,均不是C语言关键字的选项是________.
A)DEFIN IF TYPE
B)getc char printf
C)include case scanf
D)while go pow
4.下面正确的字符常量是______.
A)“c”B)‘K’C)‘’D)‘23’
5.下列四组选项中,均是合法转义字符的选项是___.
A)‘\"'‘\\’‘\n'
B)‘\'‘\017’‘\"'
C)‘\018’‘\f’‘xab’
D)‘\\0’‘\101'‘xlf’
6.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6'-‘3’后,c2中的值为_____________.
A)D B)68C)不确定的值D)C
7.设有说明语句:char w;int x;float y;double z;则表达式w*x+z—y值的数据类型为______.
A)float B)char C)int D)double
8.判断char型变量ch是否为大写字母的正确表达式是.
A)‘A’〈=ch<=‘Z’B)(ch〉=‘A')&(ch〈=‘Z’)
C)(ch〉=‘A')&&(ch〈=‘Z’)D)(‘A’〈=ch)AND(‘Z'>=ch)
9.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假".则以下不能满足要求的表达式是___________.
A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2
10.以下程序的运行结果是.
void main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);

A)6,1B)2,1C)6,0D)2,0
11、设有程序段
int k=10;
while(k==0)k=k—1;
这下面描述中正确的是_______.
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
12.语句while(!E);中的表达式!E等价于________.
A)E==0B)E!=1C)E!=0D)E==1
13.若i为整型变量,则以下循环执行次数是___________.
for(i=2;i==0;)printf("%d”,i——);
A)无限次B)0次C)1次D)2次
14.以下为一维整型数组a的正确说明是________.
A)int a(10);B)int n=10,a[n];
C)int n;D)#define SIZE10;
15.以下正确的函数定义形式是______.
A)double fun(int x,int y){}
B)double fun(int x;int y){}
C)double fun(int x,int y);{}
D)double fun(int x,y);{}
16.变量的指针,其含义是指该变量的________.
A)值B)地址C)名D)一个标志
17.若有说明语句
char a[]=”It is mine";
char*p=”It is mine”;
则以下不正确的叙述是_______.
A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制
C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
18.若执行fopen函数时发生错误,则函数的返回值是.
A)地址值B)0C)1D)EOF
19.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是_____.
A)”ab+”B)"wb+”C)”rb+”D)”ab”
20.下方程序答案正确的是_________.
#include〈string.h〉
struct STU
{int num;
float TotalScore;};
void f(struct STU p)
{struct STU s[2]={{20044,550},{20045,537}};
p.num=s[1].num;p.TotalScore=s[1].TotalScore;

main()
{struct STU s[2]={{20041,703},{20042,580}};
f(s[0]);
printf("%d%3.0f\n”,s[0].num,s[0].TotalScore);

程序运行后的输出结果是()
A)20045537B)20044550C)20042580D)20041703
二、读程序填空(每空2分,共20分)1.main()
{int i,j,x=0;
for(i=0;i<3;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;}
x++;}
printf(“x=%d\n”,x);

则程序的执行结果为__⑴_.
2.下面程序为以每行4个数据的形式输出数组a,请填空.
#define N20
main()
{int a[N],i;
for(i=0;i〈N;i++)
scanf(”%d",⑵);
for(i=1;i<=N;i++)
{if(⑶)printf("\n”);
printf("%3d",a[i-1]);

printf("\n”);
}
3.下面程序为把数组a中数据复制到数组b中并输出.
#define M5
void main()
{int i,a[5]={23,15,50,3,21};
int b[M];int*p=a,*q=b;
for(i=0;i〈5;i++)
⑷;
printf(”Output these numbers:\n”);
⑸;
for(i=0;i<M;i++)printf(”%d",*q++);
printf("\n");
}
4.以下fun函数的功能是:
在第一个循环中给a数组元素依次赋1,2,3,4,5,6,7,8,9,10;
在第二个循环中a数组元素中的值对称折叠,变成1,2,3,4,5,5,4,3,2,1;
fun(int⑹)
{int i;
for(i=1;i<=10;i++)⑺=i;
for(i=0;i<5;i++)⑻=a[i];}
5.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空.
main()
{int i,j,x;
for(j=4;j⑼;j--)
{for(i=1;i<=4;i++)
{x=(j—1)*4+⑽;
printf("%4d”,x);}
printf("\n”);
}

三、编程题(60分,在下面的空白处编写程序)
1、编程计算下面函数的值,其中x由键盘输入.(12分)
—1x≤-1
y=
x
e—1<x〈1(x+1)2x≥1
2.一球从200米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第15次落地时,共经过多少米?第15次反弹多高?(6分)
3.编写一函数sum,求二维数组(M*M)上三角(含对角线)之和.(12分)
4.从键盘上输入数组str(长度不大于100),再从键盘上输入一个字符,从数组str中删除该字符,并输出删除字符后的字符串.(12分)
5.找出数组a[N]中的最大数及其下标.(10分)
6.编写子函数search,从字符串str中查找某字符ch(str、ch由主函数提供)第一次出现的位
置和出现的次数;函数返回字符的位置,若串str中没有字符ch,则返回-1.比如:当str为"abmcmnkt”,ch为'm’时,位置为3,次数为2.要求:不允许使用全局变量.
主程序部分源代码如下.(8分)
#include<stdio.h>
int search(char str[],char ch,int*p)
{

main()
{
int k,m;
char string[20],ch;
printf(”input a string and a character\n");
gets(string);
ch=getchar();
k=search(string,ch,&m);
printf(”the first position is%d and the number of this character is%d\n",k,m);
}。

相关文档
最新文档