一、单项选择题(每小题2分,共40分)
1、sizeof(float)是(    )   
A. 一个双精度型表达式
B. 一个整型表达式
C. 一种函数调用
D. 一个不合法的表达式
2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和分别赋给i和f,则正确的输入为()。
A. 100
B. i=100,f=765.12
C. 100<回车>
D. x=100y=
3、#include<>
voidmain()
{
    inta=3,b=2,c=1;
intx=10,y=20;
if(a<b)
    if(b!=0)
    if(!x)
  y=1;
  elseif(x)
  y=0;
y=-1;
printf("%d",y);
}
上面的C程序的输出结果是()。
A. 20
B. 1
C. 0
D. -1
4、C语言中,while和do…while循环的主要区别是()。
A. do…while的循环体至少无条件执行一次
B. while的循环控制条件比do…while的循环控制条件严格
C. do…while允许从外部转到循环体内
D. do…while的循环体不能是复合语句
5、执行下面的C程序段后,输出结果是()。
inta=5;
while(a--);
printf("%d",a);
A. 54321
B. 4321
C. 0
D. -1
6、在C语言中,(      )是在所有函数外部声明的。
A. 全局变量
B. 局部变量
C. 形参
D.实参
7、分析下面的C程序:
#include<>
voidmain()
{
    intnum=0;
    while(num<=2){
      num++;
      printf("%d",num);
    }
}
输出结果是()。
A. 123
B. 012
C. 23
D. 12
8、下面的C语言代码段的输出结果是()。
intj;
for(j=1;j<10;j+=2)
printf("%d",j); 
A. 123456789
B. 2468
C. 13579
D. 12468
9、在C语言中,表达式:10!=9的值是(    )。
A. true
B. 非零值
C. 0
D. 1
10、分析下面的C代码段:
charstr1[15]="SeaView";
charstr2[15]="SeaBreeze";
strcpy(str1,str2);
printf("%s\n",str1);
则输出结果是(      )。 
A. SeaView
B. SeaBreeze
C. SeaViewSeaBreeze
D. SeaBreezeSeaView
10、若w=1,x=2,y=3,z=4,则条件表达式w<xw:y<zy:z的值是(      )。
A. 4
B. 3
C. 2
D. 1
11、表达式18/4*sqrt/8值的数据类型为(      )。
A. int
B. float
C. double
D. 不确定
12、在C语言中,不正确的int类型的常数是( )。
A. 32768 
B. 0 
C. 037 
D. 0xAF
13、语句:printf("%d",(a=2)&&(b=-2);的输出结果是( )。
A. 无输出 
B. 结果不确定 
C. -1 
D. 1
14、下列描述中不正确的是( )。
A. 字符型数组中可以存放字符串
B. 可以对字符型数组进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
15、以下选项中不能作为C 语言合法常量的是( )。
A.    'cd'
B.    +6
C.    "\a"
D.    '\011'
16、以下叙述中错误的是( )。
A用户定义的函数中可以没有return 语句
B用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值
C用户定义的函数中若没有return 语句,则应当定义函数为void 类型
D函数的return 语句中可以没有表达式
17、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是
( )。
A.m[--i]
[2*2]
[m[0]]
[m[i]]
18、已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
>='A'&&kk<='Z'
B.!(kk>='A'‖kk<='Z')
C.(kk+32)>='a'&&(kk+32)<='z'
(kk)&&(kk<91)
19、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
20、以下叙述中错误的是
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含文件时,可以给指针变量赋NULL
21、以下描述正确的是( )。
程序的执行是从main函数开始,到本程序的最后一个函数结束
程序的执行是从第一个函数开始,到本程序的最后一个函数结束
程序的执行是从main函数开始,到本程序的main函数结束
程序的执行是从第一个函数开始,到本程序的main函数结束
二、将下列程序补充完整。(每空分,共30分)
1.输入三角形的三条边a,b,c,求三角形的面积。
  #include <>
  #include <>
  void main( )
  {    float  a,b,c,d,t,s;
        printf(“请输入三角形的三条边:”);
        scanf(“%f,%f,%f”,&a,&b,&c);
          if  ( 1
printf(“%f%f%f不能构成三角形!”, a,b,c);
else {t=(  2  )/2;
s=sqr(t*(t-a)*(t-b)*(t-c));
printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”, a,b,c,s);}
}
(1) ____a+b<=c&&a+c<=b&&b+c<=a______________________     
(2) ____a+b+c_______________________________________
2.输入两个整数,n1,n2(要求n1<n2),统计两整数范围内被3整除的数的个数。
#include <>
void main()
{int n1,n2,j=0,n=0;
printf(“\n请输入两个数:”);
scanf (      ( 3 )      );
if(n1>n2){  ( 4 )    }
for(j=n1;j<=n2,j++)
if    ( 5 )    n++;
printf(“a=%5d,b=%5d,n=%5d\n”n1,n2,n);}
(3)______"%d %d", &n1, &n2___                   
(4) _____printf("输出的值非法!enter任意键退出\n");getch();exit(0);___                   
(5)_____ j%3==0__________________________________             
3.输入两个整数,n1,n2(要求n1<n2),统计两整数范围内的素数的个数。
  #include <>
  #include <>
  int prime (int x)
  {    int k;
for ( 6 )
if (x%k==0) return(0);
return(1)
}
void main()
{int a,b,j,n=0;
printf(“\n请输入两个数:”);
一个完整的c语言程序scanf(“%d,%d”,&a,&b);
if(a>b){    (7)    }
for(j=a;j<=b,j++)
if(    (8)    ) n++;
printf(“a=%4d,b=%4d,n=%4d\n”a,b,n);}
(6) _k=2;k<=x-1;k++                                                         
(7) _printf("输出的值非法!enter任意键退出\n");getch();exit(0);
(8)   prime(j)___________________________________              __
4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。
#include <>
void main( )
{int x,n,k,k1=0,k2=0,k3=0;
printf(“input n=:”);
( 9 )       
for(k=0;k<n;k++)
{scanf(“%d”,&x);
if (x<0)k1++;
( 10 )        ;
else  k3++;
printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)
}}
(9)scanf (" %d", &n);   
(10)else if (x==0) k2++;
5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束.
#include <>
void main( )
{    char ch;
do{ch=getchar();
if (    (11)    )break;
else if(    (12)    )putchar(ch);
}while(1);
}
(11) ch=='q' || ch=='Q'        
(12) ch>='a'&& ch<='z' || ch>='A' && ch<='Z'

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。