10 秋
第二部分C语言程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
一、选择题(用答题卡答题,
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
依次填在21~30答题号内,共10分)
21.以下关于C源程序的叙述中正确的是__________。
A.注释只能出现在程序的开始位置或语句后面
B.一行中不能写多条语句
C.一条语句可以分写在多行中
D.一个源程序只能保存在一个文件中
22.C源程序中的命令#include与#define是在__________阶段被处理的。
A.预处理B.编译C.连接D.执行
23.以下语句中有语法错误的是__________。
A.printf(“%d”,0xAB);B.printf(“%f”,3.45E2.5);
C.prinif(“%d”,037);D.printf(“%c”,‘\\’) ;
24.已有声明“int x=5,y;float z=2”,以下表达式中语法正确的是__________。
A.y=x%z B.x>0?y=x:y=-x
C.y=x/2=z D.y=x=z/2
25.已知字母A的ASCⅡ码是65,字母a的ASCⅡ码是97,变量c中存储了一个大写字母的编码.若要求将C中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是__________
A.c=tolower(c) B.c=c+32 C.c=c-‘A’+’a’ D.c=(c+’A’)%26-‘a’
26.一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2-4ac>0,以下选项中能正确表示该条件的C语言表达式是__________
A.a!=b*b-4*a*c>0 B.a!=0||b*b-4*a*c>0
C.a&&b*b-4*a*c>0 D.!a&&b*b-4*a*c>0
27.以下关于break和continue语句的叙述中正确的是:
A.break和 continue语句都可以出现在 switch语句中,
B.break和continue语句都可以出现在循环体的循环语句中,
C.在循环语句和switch语句之外允许出现break和continue语句。
D.执行循环语句中的break或continue语句都将立即终止循环
28.若有一函数定义为“int f(int x,int*y){return x/*y;}”,声明该函数的正确形式是
A.void f(int,int);B int *f(int,int*); C int f(int*,int*); D int f(int,int*)
29.已知有声明“char a[ ]=“program”,*p=a+1;”,则执行以下语句,不会输出字符a的是:
A.putchar(*p+4)
B.putchar(*(p+4))
C.putchar(a[sizeof(a)-3])
D.putchar(*(a+5))
30已有定义和声明:
struct student
{ int no;
char name[20];
struct {int year,month,day;}birth;
} s;
若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实现这一功能的程序段是_____________
A.year=1989;month=11; day=12;
B.s.year=1989;s.month=11; s.day=12;
C.birth.yesr=1989;birth.month=11; birth.day=12;
D.s.birth.year=1989;s.birth.month=11; s.birth.day=12;
二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)
.基本概念
1.若有声明“duouble n;”,则数学公式“(1/3)n(4n2-1)”对应的C语言表达式正确形式是 。
2.已知有声明“char ch; int a;”,执行语句“scanf(“%c%d”,&ch,&a);”时如果从键盘输人的数据是“123”,则变量 a得到的值是 。
3.若有声明“int a=0,b=1,c=2;”,执行语句“if(a>0&&++b>0)c++;else c--;”后,变量a、b、c的值分别是 。
4.若有以下宏定义:
#define M(a,b) -a/b
则执行语句“printf(“%d”,M(4+3,2+1));”后输出结果为 。
5.声明“FILE*p;”中的类型标识符“FILE”是在头文件 中定义的。
.阅读程序
6.以下程序运行时输出到屏幕的结果为 。
#include
enum{A,B,C, D}x;
void main()
{char s[]=“your”;
for (x=B;x<=D;x++)
putchar(s[x]);
}
7.以下程序运行时输出到屏幕的结果是 。
#include
void main()
{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j;
for(i=0;i<12;i++)
{ j=s[i];
c[j]++;
}
for(i=1;i<5;i++)
printf("%d",c[i]);
}
8.以下程序运行时输出到屏幕的结果是 。
#include
int fun(int x)
{ static int c,y;
if(c==0)y=1;
else y=y+x;
c++;
return y;
}
void main()
{ int i;
for(i=0;i<2;i++)
printf(“%d”,fun(2));
}
9.以下程序运行时输出到屏幕的结果中第一行是 ,第二行是 。
#include<Stdio.h>
void fun(int *a,int b)
{ while(b>0)
{ * a+=b;
b一一;
}
}
void main()
{ int x=0,y=3;
fun(&x,y);
printf(“%d\n%d\n”,x,y);
}
10.以下程序运行时输出到屏幕的结果是 。
#include
int f(int x)
{ if(x==0||x==1)return 3;
return x*x-f(x-2);
}
void main()
{ printf("%d\n",f(3));}
_
11.以下程序运行时输出到屏幕的结果中第一行是 ,第二行是 。
#include <stdio.h>
#include<ctype.h>
void compute(char *s)
{ int t,r;
char op;
for(r=0;isdigit(*s);s++) /*isdigit(*s)判断 s指向的字符是否为数字字符*/
r=r*10+*s-‘0’;
while(*s)
{ op=*s++;
for(t=0;isdigit(*s);s++)
t=t*10十*s一‘0’;
switch(op)
{ case‘+’:r=r+t;break;
case‘一’:r=r一t;break;
case‘*’:r=r*t; break;
case‘/’:if(t)r=r/t; else{puts(“devide error”);return;}