C-1练习题

1.在一个C程序中()

A. main函数必须出现在所有函数之前
B. main函数可以出现在任何地方
C. main函数必须出现在所有函数之后
D. main 函数必须出现在固定位置

2.下列不合法的用户标识符是()

A. j2_KEY
B. Double
C. 4d_a
D._8_

3,在“文件包含”预处理语句的使用过程中,当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C. 仅仅搜索源程序所在目录
D.仅仅搜索当前目录

在C语言中,当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是:

B. 先在源程序所在目录搜索,然后按系统设定的标准方式搜索。

这意味着编译器首先会在当前源代码文件所在的目录中查找被包含的文件,如果找不到,才会按照系统设定的标准搜索路径来查找文件。这样可以让你相对灵活地包含头文件,不仅限于系统标准的头文件目录。

4.下面合法的C语言字符常量是()

A. 't'
B. "A"
C. 'xx'
D.A

5.下列选项中用于判断ch是否是字符的表达式是()

A.('a'<=ch<='z)I('A'<=ch<=Z')
B. ('a'<= ch <='z') && ('A'<= ch<='Z')
C. (ch >='a'&& ch <= 'z') && (ch >= 'A' && ch <= 'Z')
D.(ch>='a' && ch <='z')Il (ch>='A' && ch<='Z')

6.若a为int类型,且其值为3,则执行完表达式a+= a-= a*a后,a 的值是()

A.-3
B.9
C.-12
D.6
  1. 设a 为整型变量,不能正确表达数学关系:10

     A. 1010 && a<15
     D. !(a<=10) && !(a>=15)
    

8,设ch是char型变量且为’A’,经过下面的表达式运算后ch的值是()
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;

A.A
B. a
C.Z
D.zment
  1. 下列字符中,错误的转义字符是()

     A.'\'
      B. '\n'
     C. '\''
     D. '\091'
    

10,阅读以下程序段,如果从键盘上输入abc<回车>,则程序的运行结果是()

 char ch;
 scanf("%3c",&ch);
 printf("%c",ch);

A.a
B.b
C.c
D.语法出错

  1. 若a、b、cl、c2、x、y均是整型变量,以下正确的switch语句是()
A.
	switch(a+b);
	{   case 1: y=a+b; break;
		case 0:y=a-b; break;)
B.
switch(a*a+b**b)
case 3:
case 1: y=a+b; break;
case 3: y=b-a, break;}
C
switch a{ 
case c1: y=a-b; break;
case c2: x=a*b; break;
default: x=a+b; }
D
switch(a-b){
default: y=a*b; break; 
case 3: case 4: x=a+b; break; 
case 10: case 11: y=a-b; break;)

12.有以下程序段

int n,t=1,s=0;
	scanf("%d",&n);
	do{
		s=s+t;t=t-2;
	}
	while (t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是()

A.任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数
  1. 以下定义语句中不正确的是()

    A. double x[5]=(2.0, 4.0, 6.0, 8.0, 10.0);
    B. char c20=("x10', "xa', "x8');
    C. char c1[]=('1', '2', '3', '4', '5');
    D. int y[5]={0,1,3,5,7,9);
    

    14.以下能正确定义数组并正确赋初值的语句是()

	A. int n=5,a[n];
	B. int a[1][2]=((1),(3}};
	C. char s2]=['t','e','s','t'
	D. char s1[10];s1="test";
  1. 下面是对s的初始化,其中不正确的是()。
		A. char s[5]=("abc");
		B. char s[5]=('a', 'b', 'c');\
		C. char s[5]="";
		D. char s[5)="abedef";

16,在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()

A. extern
B. register
C. auto
D. static

17.下列函数定义中,会出现编译错误的是()。

A.
int max(int x, int y, int *z)
{
	*z=x>y? x:y;
	return *z;
}
B.
int max(int x, y)
{	
	int z;
	z = x>y? x:y;
	return z;
}
C.
int max(int x, int y)
{
int z;
z=x>y?x:y;
return (z);
}
D.
int max(int x, int y)
{
	return (x>y? x:y);
}

18.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,()是正确的。

A. p2=pl
B.p2=**pl
C.p2=&pl
D. p2=*pl
  1. 若有定义:int *p[3];则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p.该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

20.若有以下说明和定义语句,则变量m在内存中所占的字节个数是()。

union aa{float x; float y; char c[6];);
struct stfunion aa; float w[5]; double ave;)m;
A. 42
B.34
C.30
D. 26

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________

. #include <stdio.h>
int main(){
	int score, bonus;
	score = 60;
	bonus = 2;
	switch(bonus){
	case 1:
		score += 10;
	case 2:
		score += 20;
	case 3:
		score += 30;
	}
	printf("%d", score);
	return 0;
}

2._________

#include 
typedef struct date
{
	int year;
	int month;
	int day;}DATE;
void Func(DATE *p)
{
p->year=2018; 
p->month = 12; 
p->day = 25;
}
int main()
{
	DATE d={2019,1,1};
	printf("%d,%d,%d\n", d.year, d.month, d.day); 	`				     
	Func(&d);
	printf("%d,%d,%dn", d.year, d.month, d.day);
}

3_____

#include
 int main()
 {
 	int a, b;
 	for(a=1,b=1;a<=100;a++)
 	{if(b>=20) break;
 	if(b%3==1)
 	{b+=3;continue;} 
 	b-=5;}
 	printf("%d",a);
 	 return 0;
 }

4_____

#include
int main()
{
		int i=13,j=0; 
		do{
		j=j+i;
		i--;
		}while(i>10);
		printf("i=%d,j=%d\n",i,j); 
		return 0;
}

5_____

#include
void fun(int a[2][3])
{
	int i,j,max;
	for(i=0;i<2;i++)
	{
		max=a[i][0];
		for(j=1;j<3;j++)
		if(a[i][j]>max)
					max=a[i][j];
	a[i][0]=max;
	}
}
int main()
{
	int a[2][3]={1,2,3,4,5,6},i,j; 			 
   fun(a);
   for(i=0;i<2;i++)
   for(j=0;j<3;j++)
   		printf("%4d",a[i][j]); 
   return 0;
   }

三、程序填空题(每空5分,共35分。请将答案填写在答题纸的相应位置上。)1. 在玩牌程序中,每一组牌用数字1~13代表。输入数字,显示相应的牌。其中2-10直接显示数字,而数字1、11、12、13则分别用Ace、Jack、Queen、King来表示。

 #include 
 void main()
 {
 	int n;
 	scanf("%d", &n);
 	if(n >= 1 && n <= 13){
 	 switch_____{
 	 	case 1:_____
	   case 11: printf("Jackin"); break;
	   case 12:_____
	   case 13:_____
	   default:_____
	   }
	 }else{
	 	printf("Errorin");
	 }
}
  1. 统计字符串中0-9的出现次数。
#include
#include
void main()
{
	char s[80];
	int count[10];
	int i;
	scanf("%s",s);
	for(i=0;i<___;i++)
	if([i]>='0'&&s[i]<='9') ++];
	for(i=0;i<10;i++)
	printf("%d",count[i]);
}

四、编程题(本大题共 3小题,每小题 15分,共 45分。请在答题纸的相应位置上作答。)

1,根据某城市出租车收费标准编写程序对车费进行计算。具体标准如下:起步里程为3km,起步费10元:10km以内超起步里程部分,没千米2元,超过10km以上的部分加收50%的回空补贴费,即每千米3元。运营过程中,因堵车及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

要求:输人行驶里程(精确到0.1km)与等待时间(精确到分钟),计算并输出乘客应支付的车费(元),结果四舍五人,保留到元。

2.编写程序,求2n!(即求1!+2!+3!+.+20!),要求用子函数完成。

  1. 编写程序,对某电子产品销售公司员工的销售收入进行输入、统计、排序、打印。假设公司有40名员工,销售产品有电视机、电冰箱、空调和洗衣机四种,员工自身信息有工号和姓名。输人信息为:工号(int)、姓名(字符串)、电视机(float)、电冰箱(float)、空调(float)和洗衣机(float)销售收入,然后计算每人的总销售额(float),再按总销售额从高到低排序,最后输出排序后的结果,每一行一位员工的数据,仍然是按工号、姓名、电视机、电冰箱、空调和洗衣机销售收入的顺序。

你可能感兴趣的:(2模拟0_C,c语言,算法,开发语言)