一、单选题:本题共15小题,每小题2分,共30分,在每小题给出的四个选项中,只有一项是符合题目要求的。
由C语言编写的代码程序( )
:::danger
A. 可直接执行
B. 是一个源程序
B. 经过编译即可执行
C. D. 经过编译解释才能执行
:::
C语言源程序的扩展名为( )
A .obj
B. .c
C. .exe
D. .cpp
A. 大写字母
B. 中划线
C. 数字字符
D. 下划线
A. 八进制
B. 二进制
C. 十六进制
D. 十进制
A. o115
B. 0118
C. 1.5e1.5
D. 115
A. 在C语言中,逗号运算符的优先级最低
B. 在C语言中,赋值运算符自右向左运算
C. 在C语言中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算
D. 在C语言中,++、--运算符可以改变变量的值
A. <=
B. =
C. %
D. &&
A. 0
B. False
C. 1
D. True
A. 0<=x<=100
B. i=j==0
C. (char)(65+3)
D. x+1=x+1
10.在C语言中,以下非法的赋值语句是( )
A. j++;
B. ++(i+1);
C. x=j>0;
D. k=i==j;
11.以下程序的输出结果是( )
main()
{ char *s="ABC";
do
{ printf("%d",*s%10);
s++;
} while(*s);
}
A. 5670 B. 656667 C. 567 D. ABC
12.以下程序的输出结果是( )
main()
{ int a=1,b=3,c=5;
int p1=&a,p2=&b,*p=&c;
p=(p1)(p2);
printf("%d\n",c); }
A. 1 B. 2 C. 3 D. 4
13.int a[10],*p=a;
不能代表a[1]地址的是( )
A. p+1
B. B. a+1
C. C. ++a
D. D. ++p
14.int a[4][5],(p)[5];
p=a;
下列对数组a 数组元素正确的引用形式是( )
A. p+1
B. (p+3)
C. p[0][2]
D. *(p+1)+3
15.设有以下说明语句,则下面的叙述不正确的是( )
struct ex
{ char a;
int b;
float c;
} example;
A. struct 是结构体关键字
B. example是结构体类型名
C. a、b、c是结构体成员名
D. struct ex是结构体类型
二.判断题:本题共10小题,每小题1分,共10分,判断对错,答案在答题卡上填涂
1、C 语言具有简洁明了的特点。( )
2、预处理命令的前面必须加一个“#”号。( )
3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。( )
4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。( )
5、continue 不是结束本次循环,而是终止整个循环的执行。( )
6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数( )
7、.函数的实参传递到形参有两种方式值传递和地址传递( )
8、直接访问就是直接利用变量的地址进行存取直接访问( )
9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。( )
10、文件指针和位置指针都是随着文件的读写操作在不断改变。( )
三.填空题:本题共15小题,每空1分,共20分。
1.C程序是由 构成的,一个C源程序至少且仅包含一个 。
2.C语言规定标识符只能由 、 和下划线3种字符组成,且第一个字符必须为 或下划线。
4.表达式 21 % 4 的值为 。
5.已知a=79.745,则表达式 (int)a 的值为 。
7.已知ch='B',则表达式printf(“%c”,ch>='A ' && ch<='Z'? ch+32:ch);的值为 。
8.C中定义符号常量PI为3.14159的宏命令是 。
9.C 语言中变量默认的存储类型为 类型。
10.函数形参和调用的实参是普通变量时,参数的传递方向是 的。
11.C中逻辑运算符的优先次序是: 高于 高于 。
12.定义一个共用体变量,共三个成员分别是字符型、整型和单精度浮点型,则该共用体变量所占内存长度为 个字节。
13.以下程序段的输出结果是 。
printf(“%d”,10*MIN(10,15));
15.定义一个递归函数实现f=1+1/2+1/3+…+1/n运算,当f(1)=1时递归退出,该函数的递归体是 。
四.程序填空题:本题共2小题,每空2分,共10分。
#include <stdio.h>
main()
{ int i=0;
char str[80];
scanf(" ① ",str);
while(i<80)
{ if(str[i]>='A'&&str[i]<='Z')
str[i]= ② ;
③ ;
}
printf("%s\n",str);
}
#define N 3
main()
{ int a[N][N],i,j,sum1,sum2;
sum1=sum2= ;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
{ sum1+= ① ;
sum2+= ② ;
}
printf("sum1=%d,sum2=%d\n",sum1,sum2);
}
五.阅读程序写结果:本题共4小题,每题5分,共20分。
main()
{ int i=1;
while(i<=15)
if(++i%3!=2) continue;
else printf("%d,",i);
printf("\n");
}
int fun(int n)
{ int i,s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
main()
{ int i,s=0;
for(i=1;i<=4;i++)
s+=fun(i);
printf("%d\n",s);
}
#include <stdio.h>
main()
{ char s[]="123456789",*p=s,i=0;
while(*p)
{ if(i%2==0) *p='*';
p++;
i++;
}
printf("%s\n",s);
}
void fun(char x,char y)
{ char t;
t=x;x=y;y=t; }
main()
{ char p="abc",q="123";
fun(p,q);
printf("%s,%s\n",p,q);
}
六.编程题:本题共1小题,共10分。
输入 10 个整数,将其中最大数与最后一个数交换,最小数与第一个数交换。
#include<stdio.h>
void main(){
int s[10],i,m,n,t;
for(i=0;i<10;i++)
scanf("%d",&s[i]);
m=0,n=0;
for(i=1;i<10;i++){
if(s[n]>s[i]) n=i;
else if(s[m]<s[i]) m=i;
}
//a[n] 最小值a[0]
t=s[n];
s[n]=s[0];
s[0]=t;
//a[m] 最大值a[9]
t=s[m];
s[m]=s[9];
s[9]=t;
for(i=0;i<=9;i++)
printf("%d ",s[i]);
}