一、单项选择题
1、下列变量说明语句中,正确的是(D)。
A、char a;b;c;
B、char:a b c;
C、int x;z;
D、int x,z;
2、设以下变量均为int类型,则值不等于7的表达式是(A)。
A、(x=6,x+1,y=6,x+y)
B、(x=y=6,x+y,y+1)
C、(y=6,y+1,x=y,x+1)
D、(x=y=6,x+y,x+1)
3、设:
long w=65535,t=7654321;
根据下面的输出结果,正确的程序段是(C).
w=65535,t=7654321
end
A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');
B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");
C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");
D、printf("w=%5u,t=%7u\n",w,t);printf( "end");
4、设x,y,z,t均为整型变量,则执行以下语句后,t的值为:( B)
x=y=z=1;
t=++x||++y&&++z;
A、0
B、1
C、2
D、不定值
5、如果int a=2,b=3,c=0,下列描述正确的是( B )。
A、a&&b>c的结果为假
B、!a!=(b!=c)表达式的值为1
C、a||(b=c)执行后b的值为0
D、a>b!=c和a>(b!=c)的执行顺序是一样的
6、从键盘输入的整数中出最小值min,输入0时结束.请在A处填写正确语句( D )。#include "stdio.h"
main()
{ int min=0,a;
do{
scanf("%d",&a);
if(min>a) min=a;
}while(___A___);
printf("%d",min);
}
A、a=0
B、a==0
C、a>0&&a<0
D、a!=0
7、设有如下程序段:
int k=10;
while(k==0)
k--;
则下述说明中正确的是( A).
A、循环体一次也不执行
B、循环体执行一次
C、死循环
D、循环体执行10次
8、static char str[10]="China";数组元素个数为(D)。
A、6
B、9
C、5
D、10
9、函数调用:strcat(strcpy(str1,str2),str3)的功能是( D)。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str2连接到串str1之后再将串str1复制到串str3中
C、将串str1连接到串str2之后再复制到串str3之后
D、将串str2复制到串str1中后再将串str3连接到串str1之后
10、C语言程序中必须有的函数是(B)。
A、#include "stdio.h"
B、main
C、printf
D、scanf
11、程序运行结束后,屏幕上输出值为( B).
static int x=10;
main( )
{ int x=3;
f( );
x- -;
printf("%d",x);
}
c语言用递归函数求n的阶乘
f( )
{ x++;
}
A、10
B、2
C、11
D、3
12、file1.c中有命令,#include <file2.c>,若file2.c中有全局静态变量a,则( B).
A、a在file1.c中应用extern说明.
B、a在file1.c中有效,不必用extern说明.
C、a在file1.c中不生效
D、a在file1.c和file2.c中均不生效.
13、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(C)。
A、*p=*q;
B、n=*q;
C、p=n;
D、p=q;
14、以下程序的输出结果是( A).
main()
{char str[ ]="ABCD",*p=str;printf("%d\n",*(p+3));}
A、68
B、不确定的值
C、字符D的地址
D、0
15、使用共用体变量,不可以(A)。
A、同时访问所有成员
B、进行动态管理
C、节省存储空间
D、简化程序设计
二、判断题
1、在C语言中,各种类型的整型数据在内存中都占2个字节。N
2、表达式 (j=3, j++) 的值是4.Y
3、格式字符%e以指数形式输出实数数字部分小数位数7位.N
4、char c[6]="abcde"; printf("%3s", c)表示输出的字段的宽度为3位,如果被输出的数
据的位数大于3,只输出3位数.N
5、设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0.N
6、已知a=1,b=2,c=3,d=4,则条件表达式a>b?a:(c>d?c:d)的值为4.Y
7、已知a=3,b=4,c=5.则逻辑表达式a+b>c && b==c值为0.Y
8、do-while循环由do开始,while结束,循环体可能一次也不做。N
9、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.N
10、在do-while循环中,任何情况下都不能省略while.Y
11、对静态变量的初始化不是在编译阶段完成的.N
12、定义 int x[5],n;则x=x+n;或x++;都是正确的.N
13、语句 char ch[12]={"C Program"};与语句 char ch[ ]="C Program";具有不同的赋初值功能.Y
14、数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.N
15、变量根据其作用域的范围可以分作局部变量和全局变量.Y
16、当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.N
17、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,
所以此宏定义是错误的。N
18、设有如下定义:int *p; *p=100;则 printf("%d",p); 的输出结果是100.N
19、使几个不同的变量共占同一段内存的结构,称为"结构体"类型.N
20、在打开文件时,必须说明文件的使用方式,"wb+"表示以读/写方式打开一个二进制文件.Y
三、填空题
1、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _____ . c=(a-=(b-5)); c=(a%11)+(b=3); 9
2、getchar()函数只能接收一个_____. 字符
3、当a=1,b=2,c=3时,执行以下程序段后b=_____. if (a>c) b=a; a=c; c=b; 2
4、abcde<;回车>,则以下while循环体将执行 _____ 次. while((ch=getchar())=='e') printf("*"); 0
5、字符串的结束标志是_____. '\0' 0
6、如果函数不要求返回值,可用_____来定义函数为空类型. void
7、将函数funl 的入口地址赋给指针变量p的语句是_____. p=funl; 小写的L,不是数字一
8、设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是 _____。 union stud { short int num; char name[8];float score[3]; double ave; } d,stu[3]; 12
四、程序设计
1、/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:用do-while语句求1~100的累计和。
------------------------------------------------*/
#include "stdio.h"
long int fun(int n)
{
/*********Begin**********/
/********** End **********/
}
main ()
{
int i=100;
void TestFunc();
printf("1~100的累加和为:%ld\n",fun(i));
TestFunc();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论