C语言考试练习

C语言考试练习

选择题

1、以下叙述正确的是( )
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。

解析
A:C语言需要编译链接才可以运行
B:正确
C:每条C语句,经过编译(Compile)最终都将转换成二进制的机器指令。C语言源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件,最后还要由称为“连接程序”的软件,把此.OBJ文件与C语言提供的各种库函数连接起来生成一个可执行文件。
D:C语言中的函数可以单独进行编译,编译为目标文件,要链接成可执行文件时,需要主函数以及库。

2、一个C语言的源程序中( )
A)必须有一个主函数   B)可能有多个主函数
C)必须有除主函数外其它函数  D)可以没有主函数

解析:
 一个c语言程序有且只能有一个main函数,必须要有main函数的才可以完成连接为exe文件。可以没有其他函数,但是没有主函数无法生成可执行文件

3、以下不能定义为用户标识符的是( )
A)scanf  B)Void  C)_3com  D)int

解析
 ①用户标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线;
 ②用户标识符不能使用系统法保留的关键字;
 ③用户标识符区分大小写,可以用来作为变量名。
 选择D项

4、若以下选项中的变量已正确定义,则正确的赋值语句是( )
A)x1=26.8%3;  
B)1+2=x2;  
C)x3=0x12;  
D)x4=1+2=3;

解析:
A 求余只能是整数求余
B 常量不能当做左值
D 3不能赋值给1+2
选择c项

5、设有定义:float a=2,b=4,h=3;以下C语言表达式中与代数式 的计算结果不相符的是( )

A)(a+b)*h/2  
B)(1/2)*(a+b)*h  
C)(a+b)*h*1/2  
D)h/2*(a+b)

解析:
浮点除整数,结果是浮点;
整数除整数,向下取余,结果整数;
1/2结果是0;故结果选择B项

6、C语言中用于结构化程序设计的3种基本结构是( )
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue

A,不解释;

7.在while(!x)语句中的!x与下面条件表达式等价的是( )

A) x!=0      B) x==1
C) x!=1      D) x==0

 在C语言中,判断真假用是不是零;不是零的数都是真的;
x=2,while也不执行,所以不能选择C项
 while (x) 的意思就是while (x != 0),也就是x不为0的时候循环
 因此while (!x) 的意思就是 while (x == 0),也就是x为0的时候循环
选D

8、有以下程序:

#include <stdio.h>
void main(){
     
     
	int i=1,j=1,k=2;
	if( (j++||k++)&&i++ )
	printf(%d,%d,%d\n”,i,j,k);
}

执行后的输出结果是( )
A)1,1,2  B)2,2,1  
C)2,2,2  D)2,2,3

C ||操作,从左向右判断,左侧为真就不判断右侧,因此执行j++,不执行k++;
&&操作,两侧都执行;故执行i++;
得2 2 2;

9、有以下程序:

#include <stdio.h>
void main(){
     
      
int i,s=0;
for(i=1;i<10;i+=2) 
s+=i+1;
printf(%d\n”,s);}

程序执行后的输出结果是( )
A)自然数1~9的累加和   B)自然数1~10的累加和
C)自然数1~9中奇数之和  D)自然数1~10中偶数之和

解析:
i初始是1,但是后面s加的是i+1的值,就是2;
i在第二次循环是3,s+的是3+1的值,就是4;
以此类推
得D项正确;

10、有以下函数定义:
void fun(int n,double x){……}
若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是( )
A)fun(int y,double m);  
B)k=fun(10,12.5);
C)fun(x,n);
D)void fun(n,x);

选择C
A:调用的时候不用写参数类型
B:本函数返回值类型是空(void),没有返回值,自然不能给k赋值
D:函数调用不需写返回值类型

填空题

11、C语言描述“x和y都大于或等于z”的表达式是()
 x>=z&&y>=z

12、函数定义时涉及的基本要素是:_____ 、______ 、_______。
 函数名、形式参数、函数体

13、C语言可以用来实现循环的结构化语句是:_____ 、______ 、_______。
 for、while、do-while

14、判断整型变量a即是5又是7的整数倍的C语言表达式是:____________。

(a%5==0)&&(a%7==0)

15、 若x和n都是int型变量,且x和n的初值都是6,则计算表达式x+=n++后,x的值为(),n的值为() 。
 12 7

写结果

16、程序1

#include <stdio.h>
void main() {
     
     
	int a=12,b=12;
	printf(%d,%d\n”,--a,++b); 
}

程序执行后的输出结果是_______
 - -a:就是先将数值减去1,++b就是先将数值加1,再输出
答案:11,13

17、程序2

#include <stdio.h>
void main() {
     
     
int a=5,b=4,c=3,d=2;
	if(a>b>c) 
		printf(%d\n”,d);
	else if((c-1>=d)==1)
		printf(%d\n”,d+1);
	else
		printf(%d\n”,d+2);
}

程序执行后的输出结果是:_______

 2
第一个分支:a>b成立,返回结果1;1>c不成立;进入第二个判断
第二个判断:c-1是2,2>=d 真;输出d+1;
结束

18、程序3

#include <stdio.h>
void main() 
{
     
     
	int x=0,y=5,z=3;
	while(z-->0&&++x<5)
		y=y-1;
	printf(%d,%d,%d\n”,x,y,z);
}

程序执行后的输出结果是_______


循环开始前: x=0 y=5 z=3
第一次循环之后:x=1 y=4 z=2
第二次循环之后:x=2 y=3 z=1
第三次循环之后:x=3 y=2 z=0
第四次循环判断不进入循环体:x=3 y=2 z=-1

编程题

19、编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大些字母大32)

#include<stdio.h>
int main(){
     
     
	char ch;
	scanf("%c",&ch);
	printf("%c\n",ch);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Stanford_sun/article/details/123653550