• 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.仅仅搜索当前目录


    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. 10 B.a=-=11ll a=-=12 ll a=-=13 ll a==14
    C. a>10 && 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);
    
    • 1
    • 2
    • 3

    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;)
    
    • 1
    • 2
    • 3
    • 4
    B.
    switch(a*a+b**b)
    case 3:
    case 1: y=a+b; break;
    case 3: y=b-a, break;}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    C
    switch a{ 
    case c1: y=a-b; break;
    case c2: x=a*b; break;
    default: x=a+b; }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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;)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    12.有以下程序段

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

    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.以下能正确定义数组并正确赋初值的语句是()
    
    • 1

    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    B.
    int max(int x, y)
    {	
    	int z;
    	z = x>y? x:y;
    	return z;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    C.
    int max(int x, int y)
    {
    int z;
    z=x>y?x:y;
    return (z);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    D.
    int max(int x, int y)
    {
    	return (x>y? x:y);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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;
    
    • 1
    • 2

    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    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;
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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;
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    三、程序填空题(每空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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    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]);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    strlen(s)

    四、编程题(本大题共 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),再按总销售额从高到低排序,最后输出排序后的结果,每一行一位员工的数据,仍然是按工号、姓名、电视机、电冰箱、空调和洗衣机销售收入的顺序。
  • 相关阅读:
    地狱挖掘者系列#1
    spring 常用注解
    【快速排序介绍】
    linux线程大杂烩==Linux应用编程6
    JAVA毕业设计客服管理系统计算机源码+lw文档+系统+调试部署+数据库
    代码随想录算法训练营第四十五天 | 动态规划 part 7 | 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数
    LeetCode 1876. 长度为三且各字符不同的子字符串
    C++ 多路音频pcm混音算法
    代码随想录|583. 两个字符串的删除操作,72. 编辑距离(有进一步理解到)
    STC89C52+DHT20设计的环境温湿度检测仪
  • 原文地址:https://blog.csdn.net/weixin_47431459/article/details/134263798