5.根据以下说明语句,则下面的叙述中不正确的是__D___。
struct student
{ int num;
char name[10];
int score;
}stu;
A.struct是定义结构体类型的关键字
B.stu是结构体变量名
C.num, name, score都是结构体成员名
D.stu是结构体类型名
7.以下哪种方法不能对一维数组进行正确的初始化_C、B__。
A.int a[ ]={1,2,3}; B.int a[5]={ };
C.int a[5]=(1,2,3,4,5); D.int a[ ]={2,3,4*5,6};
15.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确
的是_____。
A.r+ B.rb C.wb D.ab

10.设n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入的表达式是m=n*100+0.5,n=m/100.0 【强制转换—向零取整】
6.字母A的ASCII码为十进制数65,1为字符型,a的ASCII码为97,0的ASCII码为48.
12.关于以下程序段,说法正确的是__C__。
x=-1;
do
{ x=x*x; }while(!x);
A.死循环 B.循环体执行二次 C.循环体执行一次 D.有语法错误
14.当调用函数时,实参是一个数组名,则向函数传送的是_数组的首地址
9.在定义数组时,数组名前的类型是指明数组各元素的类型;数组各元素的类型是相同的,而且是有序的;在引用数组元素时,数组元素的下标可以是常量整型表达式也可以是变
量;对整型数组来说,未初始化时,各数组元素的值是不确定的。
14.指针变量只能存放内存储单元的__地址______。
15.在C语言中,当函数返回值的类型缺少时,表示该函数返回值的类型是___int/整型____。
9、C语言中函数返回值的类型是由定义函数时所指定的函数类型决定的。


.二、填空题(5个小题,每题2分,共10分):
4.执行以下程序后,运行结果是__7.000000_____。
#include<stdio.h>
void main( )
{ int a=2;
float n=5.888,b;
b=a+(int)n;
printf(“%f\n”,b);}
三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分):
2.在运行以下程序时,输入“Turbo C++ 3.0”,写出程序的运行结果。
#include<stdio.h>
void main( )
{ char str[40];
printf("Input a string:");
scanf("%s",str);
puts(str);}
Turbo
3.#include<stdio.h>
void f(int y)
{ static int i=5;
int j=3;
j++;
printf(“%d+%d+%d=%d\n”,i,j,y,i+j+y);
i*=2;}
void main( )
{ int x;
for(x=1;x<=2;++x) f(x);}
5+4+1=10
4.#include<stdio.h>
void swap(int *pa,int *pb)
{ int *p;
p=pa;
pa=pb;
pb=p; }
void main( )
{ int a=10,b=20;
int *p1=&a,*p2=&b;
if(a<b) swap(p1,p2);
printf("%d,%d\n",a,b); }
10,20 ?   
四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分):
//利用函数形式,求x数组所有元素的平均值并输出。
#include "stdio.h"
void main( )
{ float avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3};
float average(float a[10]);
avg=average(x);   
printf("The average is %5.2f\n",avg);
}
float average(float a[10])
{ int i;
float sum=0;
for(i=0;i<10;i++) sum=sum+a[i];
return(sum/10) ;
}
//编写一个计算字符串长度的函数length。
#include "stdio.h"
void main( )
{ char str[20];
int m;
int length(char *p);
printf("Input a string:\n");
gets(str);
m=length(str) ;
printf("\n the length of str is %d \n",m);
}
int length(char *p)
{ int n=0;
while(*p!='\0' )
{ n++;
  p++;
}
return n;
}
}
//输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
#include "stdio.h"
void main( )
{ int i,n=10,a[10];
float avg=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{ if( i%3==0 )
  printf("\n");
  printf("%d ",a[i]);
}
for(i=0;i<10;i++)
avg=avg+a[i] ;
avg=avg/10;
printf("\n average=%f\n",avg);
}
5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。
#include “stdio.h”
void main( )
{ char str[30]=“Welcome to C Language”,*cp=str;
while(*cp)
{ if(*cp>=‘A’&&*cp<=‘Z’)
*cp=*cp+32 ;
else if(*cp>=‘a’&&*cp<=‘z’)
*cp=*cp-32;
cp++ ;
}
puts(str);
}
五、程序设计题(3个小题,共20分):
/
/设三个整型变量a,b,c,编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。(5分)
#include "stdio.h"
void main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%d %d %d\n",a,b,c);
}
//学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5分)
#include "stdio.h"
void main()
fopen函数失败{
  float score;
  printf("input a score:\n ");
  scanf("%f",&score);
  while(score<0||score>100)
  {
      printf("Error!Please input again:\n");
      scanf("%f",&score);
  }
  if(score>=90)
      printf("A\n");
  else if(score>=80&&score<90)
      printf("B\n");
  else if(score>=70&&score<80)
      printf("C\n");
  else if(score>=60&&score<70)
      printf("D\n");
  else
      printf("E\n");
}
//编写排序函数sort(int a[ ]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若干个数(如10个)将其按升序排列。
#include "stdio.h"
#define N 10
void sort(int a[]);
void main()
{
  int a[N],i,j;
  printf("input %d numbers:\n",N);
  for(i=0;i<N;i++)
      scanf("%d",&a[i]);
  sort(a);
  for(i=0;i<N;i++)
      printf("%d ",a[i]);
}
void sort(int a[])
{
    int i,j,temp;
    for(i=0;i<N-1;i++)
    for(i=0;i<N-1-i;j++)
        if(a[j]>a[j+1])
        {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
}
7.为了判断两个字符串s1和s2是否相等,应当使用__D__。
A.if(s1==s2) B.if(s1=s2)
C.if(strcmp(s1,s2))真 D.if(strcmp(s1,s2)==0) 假
10.有字符数组x[50],y[50],则正确的输出语句是__B___。
A.printf(″%s″,″%s″,x,y); B.puts(x);puts(y);
C.putchar(x,y); D.puts(x,y);
12.下列叙述中错误的是__A___。
A.主函数中定义的变量在整个程序中都是有效的
B.在其他函数中定义的变量,没有特殊声明在主函数中不能使用
C.形式参数也是局部变量
D.复合语句中定义的变量只在该复合语句中有效
13.设有函数原型、一维数组和变量定义如下:
函数原型 void fun(int x[ ],int n);
数组定义 int a[4]={1,2,3,4}; float b[4]={1.0,2.0,3.0,4.0};
变量定义 int m=4,value;
下列函数调用中,正确的是__A___。(函数返回值?)
A.fun(a,m); B.value=fun(a[1],m);
C.value=fun(a,4); D.fun(b,m);
15.以“只读”方式打开文本文件aa.dat,下列语句中哪一个是正确的_____。
A.fp=fopen(″aa.dat″,″r+″); B.fp=fopen(″aa.dat″,″a″);
C.fp=fopen(″aa.dat″,″wb″); D.fp=fopen(″aa.dat″,″r″);