2009 年 春 季学期 专业
期末试卷(B卷)
卷面总分:100分 答题时间:120分钟
专业 年级 班级 姓名 学号
珠海大学 题号 | 一 | 二 | 三 | 四 | 五 | 总分 |
得分 | ||||||
一、单项选择题(本题共15 个小题,每小题2分,共30分,请将答案代号填涂到机读卡上,在试卷上所写答案,视为0分)
1.下列变量名中合法的是( )。
A) int B) 3abc
C)_ab D) a.bc
2.在int a[6]={1,3,5,8},数组元素a[5]的值是( )。
A) 3 B) C
C) 5 D) 8
3.结构化程序设计中,程序的三种基本控制结构是( )。
A)过程 函数 子程序 B)递归 递推 循环
C)调用 返回 转移 D) 顺序 选择 循环
4.C语言中,可以用( )三种形式表示整型常量。
A)ASCII码﹑BCD码﹑内部码
B)十进制﹑八进制﹑二进制
C) 十进制﹑八进制﹑十六进制
D) 原码﹑外部码﹑内部码
5.、判断字符串s1是否等于字符串s2,应当使用( )。
A)if (s1=s2) B)if (strcmp(s1,s2)=0)
C)if (s1= =s2) D) if (strcmp(s1,s2)= =0)
A)if (s1=s2) B)if (strcmp(s1,s2)=0)
C)if (s1= =s2) D) if (strcmp(s1,s2)= =0)
6.下列各运算符中,操作数不能是符点型的是( )。
A) + B) *
C) && D) %
7.下列叙述中错误的是( )
A) 主函数中定义的变量在整个程序中都是有效的
B) 在其他函数中定义的变量在主函数中不能使用
C) 形式参数也是局部变量
D) 复合语句中定义的变量只能在该复合语句中有效
8.若函数的形参为一维数组,则下列说法中正确的是( )
A) 调用函数时的对应实参必为数组名
B) 形参数组可以不指定大小
C) 形参数组的元素个数必须等于实参数组的元素个数
D) 形参数组的元素个数必须多于实参数组的元素个数
9.有如下程序段:
static char a[]={“abcded”};
char*p=a;
*(p+2)+=3;
printf(“%c,%c\n”,*p,*(p+2));
则此程序的输出是( )
A) d,f B) c,e
C) a,f D) f,e
10.以下定义语句中正确的是( )
A) char a='A'b='B'; B) float a=b=10.0;
C) int a=10,*b=&a; D. float *a,b=&a;
C) int a=10,*b=&a; D. float *a,b=&a;
11.已定义以下函数
fun (int *p)
{ return *p;}
该函数的返回值是( )
fun (int *p)
{ return *p;}
该函数的返回值是( )
A) 不确定的值 B) 形参p中存放的值
C)形参p所指存储单元中的值 D) 形参p的地址值
12.下列关于switch和break语句的结论中,只有( )是正确的
A) break语句是switch中的一部分
B) 在switch语句中必须使用break语句
C) 在switch语句中可以根据需要使用或不使用break语句
D) 以上三个结论中有两个是正确的
13.以下对结构体类型变量td的定义中,错误的是( )
A)typedef struct aa
{ int n; float m; }AA;
AA td;
B) struct aa
{ int n; float m; }td;
struct aa td;
C) struct
{int n; float m; }aa;
struct aa td;
D)struct
{int n; float m; }td;
14.以下程序段的输出结果是( )
int x=23;
do
{ printf(“%d”,x--); } while(!x);
A) 输出321 B) 输出23
C)不输出任何内容 D)死循环
15.运行下列程序后的输出结果是( )
#include <stdio.h>
void main()
{ int a[2]={0},i,j,k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
a[j]=a[i]+1;
printf(“%d\n”,a[k]);
}
A) 不确定的值 B) 3
C) 2 D) 1
二﹑判断题(本大题共 10 小题,每小题 2 分,共 20 分,请将“正确”用“A”表示,“错误”用“B” 表示,填涂到机读卡上,在试卷上所写答案,视为0分)
1.(B)指针变量只能做函数的形参不可以是函数的实参。
2.(B)C语言中,字母的大小写不被区分。
3.(B)只有if语句能够实现选择结构。
4.(B)a、b是同类型变量,执行语句a=b;b=a;后a,b的值将互换。
5.(B)while语句的循环体至少执行一次。
6.(B)算法和程序没有任何区别。
7.(B)数组名字是一个变量,代表数组的首地址。
8.(B)a为整型变量,则表达式a++和++a的值相同。
9.(B)被调函数在任何情况下都不能省略声明部分。
10.(B)结构体不可以嵌套定义。
三﹑填空题(本大题共 4 小题,每小题 4 分,共 16 分,请将答案填写到下面表格内,不得修改原题和原程序,修改者视为0分,未将答案填写在表格内,视为0分)
(1)—(4) | point=&a | &a | a | *point=8; |
(5)—(8) | array | 字符型 | 9 | 0 |
(9)—(12) | 用户自定义 | 库函数 | 有返回值 | 无返回值 |
(13)—(16) | define | i++ | &a[i] | t |
1、 有这样的定义:
int a=7;
int * point;
让指针point指向a的语句是__(1)__,当point指向a后,__(2)__与point等价,__(3)__与*point等价,__(4)__与语句a=8;等价。
2、若有定义char array[10];则数组的名字是__(5)__,数组的类型是__(6)__,数组元素下标的上限是__(7)__,下限是___(8)___。
3、从用户的角度看,C语言中的函数有两种,即__(9)__和__(10)__;根据返回值分类,函数分为__(11)__和__(12)__。
4﹑下面程序的功能是:用简单选择法将5个整数从小到大排序,请将程序补充完全。
#include <stdio.h>
#__(13)__ N 5
main( )
{ int a[N];
int i,j,t;
for (i=0; i<N; __(14)__)
scanf("%d",__(15)__);
printf("\n");
for (j=0; j<N-1; j++)
for(i=j+1; i<N; i++)
if (a[j]>a[i])
{ t=a[j];a[j]=a[i];a[i]= __(16)__; }
printf("The sorted numbers: \n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
}
四﹑读程序写结果(本大题共 5 小题,每小题 2 分,共 10 分,请将答案填写到下面表格内,未填写在表格内,视为0分)
第1题 | y=1 x=0 |
第2题 | a=2 b=2 |
第3题 | 2,3 |
第4题 | 2,1 |
第5题 | Today:2009 6 25 |
1、写出该程序运行结果
x=y=0;
do
{ y++;
x*=x;
} while((x>0)&&(y>5));
printf(“y=%d x=%d\n”,y,x);
则此程序的输出是___
2、写出该程序运行结果
#include<stdio.h>
main()
{ int x=1,a=1,b=1,c=1;
if(x)
{
a++;b++;
}
else c=a+b;
printf(“a=%d b=%d \n”,a,b);
}
则此程序的输出是___
3、写出该程序运行结果
#include "stdio.h"
int mm(int m,int n)
{ static s=1;
s++;
return(s*(m+n));
}
main()
{ int a=0,b=1;
int mm(int m,int n);
printf(“%d,”,mm(a,b));
printf(“%d”,mm(a,b));
return(1);
发布评论