武汉科技大学信息学院2011期末C语言程序设计试卷B
试 题
2011 年~ 2012 年第 2 学期
课程名称: C语言程序设计 专业年级: DB电子信息
2011级
考生学号: 考生姓名:
试卷类型: A卷 ? B卷 ? 考试方式: 开卷 ? 闭卷 ? „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 一 单项选择题(每小题2分,共10分)
1. 下面__【1】___是将x的值正确赋值给数组int array[10]的第10个元素。
A)array[10]=x; B) *(array+10)=x; C) *array+9=x; D) array[9]=x;
2. ___【2】______函数的功能是在比较两个字符串的大小。
A)strAdd B)strcat C)strcpy D)strcmp
3.以下关于局部变量的描述,错误的是 【3】
A) 局部变量是在函数内部定义的变量; B)局部变量的值可以通过return语句返回
C)可以对局部变量进行初始化处理 D)局部变量可以与其所在函数的形参同名
4.若有以下定义
int a[5],*p=a;则对a数组元素的正确引用是 【4】
A) *&a[5] B) *(a+2) C) *(p+5) D) a+2
5. 以下程序的输出结果为 【5】 ,
#define PT 5.5
#define S(y) PT *( y) * (y)
main()
{ int a=1,b=2;
printf(“%4.1f\n”,S(a+b));
}
A) 9.5 B) 49.5 C)12.5 D)18.5 二、填空题(每空2分,共28分)
1. 若a是int型变量,且a的初值为6,则计算下列
达式后a的值为 【1】 。
a*=2
2. 条件“x>7或者x<-1”的C语言表达式是_____【2】________。
3. 设a=3,b=4, c=5。则下列逻辑表达式 (a>b)&& c的值为 【3】 4. 若有如下定义:int num[26]={23,3,5,7,4,-1,6}; int *n; n=&num[1];
注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。
(第 1 页)
则num[0]= 【4】 ; *n=___【5】____;
*&num[3] =____【6】______; *(n+2)____【7】_______;*++n= 【8】 ;
5. 从作用范围来看,变量分为局部变量和 【9】__ ; 6. 设有一个名为File1的C源程序,且已知命令行为FILE1 CHINA BEIJING,则argc=
【10】__ ;语句puts(argv[0])的执行结果是 【11】__ ;
语句strcmp(argv[1], argv[2])>0?puts(argv[1]):puts(argv[2]) 的执行结果为__【12】___
7. 若已定义:
struct student
{char name[20];
int age;
char sex;
float score2;
} n={”liming”,18,’f’,85};
struct student *pn=&n;
则 n.score2= 【13】 ;pn->age= 【14】 ;
三、读下列程序,写出程序的运行结果(每题6分,共18分) 1、#include
void main()
{
int i;
for(i=20;i>=10;i--)
{ printf("%d ",i);
i--;
}
}
2、#include
void main()
{
int list[5]={2,1,3,4,5};
int lines[5];
int i;
for ( i=0;i<5;i++)
lines[i]=list[4-i];
for(i=0;i<5;i++)
printf(" %d",list[i]);
printf("\n");
for(i=0;i<5;i++)
注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考
生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。
(第 2 页)
printf(" %d",lines[i]); }
3、#include
int func(int *);
int x=1;
int main()
{ int i=10;
int s=x*i;
printf("%d,%d\n",x,s);
func(&s);
printf("%d,%d\n",x,s);
return(0);
}
int func(int *p)
{
int x=5;
*p=*p/x;
printf("%d \n",*p);
x=*p+x;
printf("%d \n",x);
}
四、程序填空(每空,分,共18分)
1、以下程序实现功能:将矩阵matrix[6][6]左下三角元素置-1,右上三角元素
置1,对角线元素置0
#include
void main()
{ 0 1 1 1 1 1 int i,j;
-1 0 1 1 1 1 int table[6][6];
for(i=0;i<6;i++) -1 -1 0 1 1 1
for(j=0; 【1】 ;j++) -1 -1 -1 0 1 1
if( 【2】 ) -1 -1 -1 -1 0 1 table[i][j]=0;
-1 -1 -1 -1 -1 0 else if(【3】 )
table[i][j]= 【4】 ;
else
table[i][j]=1; 注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考
生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。
(第 3 页)
}
2、函数实现如下功能:将数组num中最大值元素和数组中的第一个元素交换。
void exchangeNum( 【5】 ,int n)
{ int *j,*pos= 【6】 ;
int temp;
for(j=num;j