1. 一个程序的执行是从( )。
A. 本程序的第一个函数开始,到最后一个函数结束
B. 本程序的main函数开始,到main函数结束
C. 本程序的main函数开始,到最后一个函数结束
D. 本程序的第一个函数开始,到main函数结束
2. C语言中字符型(char)数据在内存中的存储形式是( )。
A.原码 B.补码 C.反码 D.ASCII码
3. 下列不属于C语言关键字的是( )。
A. continue B. integer C. union D. tpyedef
4. c语言程序设计知识归纳有定义语句:char b;char c[10];,则正确的输入语句是( )。
A. scanf("%c%s",&b,&c); B. scanf("%c%s",&b,c);
C. scanf("%c%s",b,c); D. scanf("%c%s",b,&c);
5. 设整型变量a为5,使b不为2的表达式是( )。
A. b=(++a)/3 B. b=6-(--a) C. b=a%2 D. b=a/2
6. 以下哪个步骤实现对源程序检查有无语法错误( )。
A. 编辑 B. 编译 C. 连接 D. 运行
7. C语言中,能正确表示条件10≤x≤20的逻辑表达式是( )。
A. (x≥10)||(x≤20) B. (x>=10)||(x<=20)
C. (x≥10)&&(x≤20) D. (x>=10)&&(x<=20)
8. 若有说明 int a[2][2]={1,2,3,4};,则a[1][1]的值是( )。
A. 3 B. 2 C. 1 D. 4
9. 若有定义:int a=1,b=2,c=3;,则执行程序段:if(a<b){c=a;a=b;b=c;},后a、b、c的值分别为( )。
A. a=1,b=2,c=3 B. a=2,b=3,c=1
C. a=2,b=3,c=3 D. a=2,b=1,c=1
10. 下面关于switch语句的叙述中,错误的是( )。
A. case后面的表达式可以是关系表达式
B. switch语句是多分支选择语句
C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象
D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句
11. 以下程序的运行结果是( )。
void main()
{ int sum=0,item=0;
while(item<5)
{ item++; sum+=item; if(sum>=6) break; }
printf("%d\n",sum);}
A. 10 B. 15 C. 6 D. 7
12. 下面是对数组s的初始化,其中不正确的是( )。
A. char s[5]="china"; B. char s[5]={'c','h','i'};
C. char s[5]=" "; D. char s[5]={"chi"};
13. 有以下程序
main()
{ int m=56,n=78,result;
result=m<n?m:n;
printf("%d",result); }
程序运行后的输出结果是( )。
A. 56 B. 0 C. 78 D. 1
14. 若有定义:int a=2; char c[]="hello";则语句a=strcmp(c,"hello");运行后a的值为( )。
A. 1 B. 0 C. -1 D. 2
15. 有以下程序:
int mul(int x,int y)
{ return x*y; }
void main()
{ int b; b=mul(2,3); printf("%d",b); }
程序的运行结果是( )。
A. 3 B. 6 C. 5 D. 4
16. int i=5;执行语句i*=2+3;i的值是( )。
A. 25 B. 17 C. 13 D. 以上都不对
17. 若有定义:
struct teacher
{ int num; char sex; int age;
}teacher1;
则下列叙述不正确的是( )。
A. struct是结构体类型的关键字
B. struct teacher是用户定义的结构体类型
C. num,sex,age都是结构体变量teacher1的成员
D. teacher1是结构体类型名
18. 以下程序段运行后,循环体运行的次数为( )。
int i=10,x;
for (;i<10;i++) x=x+i;
A. 10 B. 0 C. 1 D. 无限
19. 以下程序段运行后s的值是( )。
int a[3][3]={1,2,3,1,2,3,1,2,3};
int i,j,s=1;
for(i=0;i<3;i++)
for(j=i;j<3;j++) s*=a[i][j];
A. 18 B. 108 C. 2 D. 12
20. 若有定义:int a[10],*p=a;,则 p+5 表示( )。
A. 元素a[5]的值 B. 元素a[5]的地址
C. 元素a[6]的值 D. 元素a[6]的地址
二、填空题(共10分,每小题1分)
1. 在程序运行过程中,值不能被改变的量称为 。
2. int fun(float x);是一个 函数(有参或无参),函数的返回值类型为 。
3. 字符串"good\n"的存储长度为 个字节。
4. 有程序段:int i=1, j=7,a; a=i+j%4;,则a的值为 。
5. 有程序段:int a[]={1,2,3,4,5,6};,则数组元素a[2]的值为 。
6. 用while语句写出与for(;;)等效的语句 。
7. 有程序段:int a[10],*p;,则使指针变量p指向数组a的语句是 。
8. %m.nf表示数据的最小宽度是 ,输出小数点后 位。
三、简答题(共9分,每小题3分)
1. 已知以下程序:#include <stdio.h>
int main(){
char c1,c2;
c1='A'; c2=c1+32;
printf("%c\n",c2);
printf("%d\n",c2);
return 0; }
请写出输出结果:
2. 已知以下程序: #include <stdio.h>
void main(){
int x=1, a=5, b=9;
switch(x)
{ case 0: a+b;
case 1: a-b;
case 2: a*b; }
printf("\na=%d,b=%d",a,b); }
请写出输出结果:
3. 已知以下程序: #include <stdio.h>
int a(int x,int y)
{ return x+y; }
int b(int m,int n)
{ return a(m,n); }
void main()
{ int i;
i=b(5,5);
printf("%d",i); }
请写出输出结果:
四、改错题(共10分,每空2分)
1. 修改程序,其功能是实现打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。
void main()
{ int f,s,t,n;
printf("\nThe list is:\n");
for(n=100,n<1000,n++)
{ f=n%10; s=(n%100)/10;
t=n%100;
if(t*t*t+s*s*s+f*f*f=n)
printf("%d ",n);}
printf("\n"); }
2. 修改程序,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。
#include <stdio.h>
#include <math.h>
void main()
{ float a[3],s,area; int i;
printf("Please input 3 numbers:\n");
for(i=0;i<3;i++)
scanf("%f",a[i]);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论