C语言期末试题及答案
- 格式:doc
- 大小:47.00 KB
- 文档页数:9
C语言期末考试题及答案
一. 单选题 (共20题,每题2分,共40分)
1. 以下运算符中优先级最高的是( )
A.< B.+ C.&& D .!
2. 下列说法正确的是()
A. 在执行C语言程序时不是从main函数开始的
B. C语言程序书写格式严格,一行内必须写一个语句
C. C语言程序书写格式自由,一个语句可以分写在多行上
D. C语言程序书写格式严格,一行内必须写一个语句,并要有行号
3. 下面的符号常量定义中,正确的是 ( )
A.#define PI 3.14; B.#include PI 3.14;
C.#define PI=3.14 D.#define PI 3.14
4. 以下程序的输出结果是 ( )
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
A.0 B.29 C.31 D.无定值
5. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )
A.地址传递 B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
6. 假设int型变量占两个字节的存储单元,若有定义:
int x[10]={0,2,4}; 则数组x在内存中所占字节数为______。
A.3 B.6 C.20 D.10
7. 下列合法的数组定义是_________。
A.int a[]=”string”; B.int a[5]={0,1,2,3,4,5};
C.char a=”string”; D.char a[]={0,1,2,3,4,5};
8. 若给出以下定义:
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
则正确的叙述为__________。
A.数组x和数组y等价 B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组y的长度大于数组x的长度
9. 若定义如下变量和数组_________。
int j;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是_________。
For (j=0;j<3;j++)
Printf("%d",x[j][2-j]);
A.1 5 9 B.1 4 7 C. 3 6 9 D. 3 5 7
10. putchar函数可以向终端输出一个
A、字符或字符变量值
B、实型变量值
C、字符串
D、整型变量表达式值
11. 以下能正确定义数组并正确赋初值的语句是______。
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}}; C.int c[2][ ]= {{1,2},{3,4}};
D.int d[3][2]={{1,2},34}};
2. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'4';后,c2中的值为
A、66 B、 68 C、67 D、 69
3. 以下能正确定义一维数组的选项是________________。
A.int num[]; B.#define N 100 int num[N];
C.int num[0..100]; D.int N=100;int num[N];
14. 以下程序的输出结果是_______。
main()
{
char cf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A."AAAA" B. "BBBCC" C. "BBB" D."CC"
15. 若有以下程序段,c3中的值是
A. 0 B. 1/2 C. 0.5 D. 1
int c1=1,c2=2,c3;
c3=c1/c2;
16. 以下程序段的输出结果是( )
A) 15 B) 14 C) 不确定 D) 0
main()
{ int i,sum;
for(i=1; i<6; i++) sum+=sum;
printf("%d\\n",sum);
}
17. 函数调用strcat(strcpy(str1,str2),str3)的功能是_______。
A. 将串str2复制到串str1中后再将串str3连接到串str1之后 B.将串str1连接到串str2之后再复制到串str3之后
C. 将串str1复制到串str2中后在连接到串str3之后
D.将串str2连接到串str1中后再将串str1复制到串str3中
18. 以下叙述正确的是
A) do_while语句构成的循环不能用其它语句构成的循环来代替。
B) do_while语句构成的循环只能用break语句退出。
C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。
D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。
19. 执行以下一段代码后,变量a,b,c的值分别是( )
int x=10,y=9;
int a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
A. a=8,b=8,c=10 B. a=9,b=9,c=9
C.a=9,b=10,c=9 D.a=1,b=11,c=10
20. 表达式3+(!(7<1)||(3<=7))的值为( )
A.3 B.4 C.5 D.错误的表达式
二. 判断题 (共10题,每题1分,共10分)
1. 不同的函数中可以使用相同的变量名。()
2. 函数的定义可以嵌套,但函数的调用不可以嵌套。( )
3. C语言程序的变量必须先定义再使用()
4. C语言认为名为Student和student的变量是不同变量
5. C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句()
6. 在switch-case语句中,必须使用default语句()
7. C语言中,字符常量可以用单引号或双引号括起来()
8. 使用putchar函数可以向终端输出一个字符串() 9. do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式()
10. 字符串比较的规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。( )
三. 填空题 (每空1分,共18分)
1. C语言中的简单数据类型有 ( )( )、( )。
2. C源程序的基本单位是( ).
3. 以下程序运行后的输出结果是:( )
void swap(int x,int y)
{ int t;
t=x;
x=y;
y=t;
printf("%d %d ",x,y);
}
main()
{ int a=3,b=4;
swap(a,b);
printf("%d %d\n",a,b); }
4 3 3 4;
4. 结构化程序由 ( )、( ) 、( ) 三种基本结构组成。
5. 语句标号由标识符表示,标识符由 ( )、( ) 和( ) 组成。第一个字符必须是字母或下划线。
6、在C语言程序中,用关键字( )定义基本整型量,用关键字( )定义单精度实型变量,用关键字( )定义双精度实型变量。
7. 若有以下程序: main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d",i, j); } 要求给i赋10,给j 赋20,则应该从键盘输入 。
8.在C语言库函数中,STRLEN(字符串)的功能是:( )。
9.函数的两种调用方式是( )和( )。
四. 读程序题 (共3题,每题4分,共12分)
1. 以下程序段的输出结果是:
#include
main( )
{
int i;
for(i=1;i<=5;i++)
{
if(i%2)
printf("* ");
else
continue;
printf("#");
}
printf("$\n");
}
2. 阅读程序
#include
void main()
{
int i,j;
int a[5][5];
printf("\n");
for(i=0;i<5;i++) {
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<5;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
请输出程序结果:
3. 阅读下列程序,写出程序的输出结果 。
# include
main()
{
int y=9;
for(; y>0; y--)
if( y%3 == 0){ printf("%d",--y);continue;}
}
五. 程序设计题 (共2题,每题10分,共20分)
1. 求1到位10的阶乘之和。(10分).
2. 有一10个数的数组,求其最小值,和最大值。 (10分)
C语言期末试题答案