C语言期末复习题解析

一、单项选择题(每小题2分,共50分)
1、一个C程序的执行是从__A___。
   A、本程序的main函数开始,到main函数结束
   B、本程序的main函数开始,到本程序文件的最后一个函数结束
   C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
   D、本程序文件的第一个函数开始,到本程序main函数结束
2、C语言程序的基本单位是___C___。
A、程序行                       B、语句
C、函数                         D、字符
3、请选出可用作C语言用户标识符的一组标识符___B___。      
A、void          B、a3_b3         C、For           D、2a
      define           _123             -abc             DO
       WORD             IF              ase              sizeof
4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是_C___ 。
   A、4.500000                     B、4  
   C、4.000000                     D、2.000000
5、下列可以正确表示字符型常量的是__D___。 
    A、297                         B、"a"     
    C、"\n"                        D、'\t'
6、在C语言中,要求运算数必须是整型的运算符是__D__。
      A、/                 B、++    
      C、*=                D、%
7、C语言中,复合语句的构成是将一系列语句置于__C__。
    A、begin与end之间
    B、方框号“[ ]”之间
    C、花括号“{ }”之间
    D、圆括号“( )”之间
8、有如下程序段,对应正确的数据输入是___A___。
float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);
A、2.04<回车>                     B、2.04,5.67<回车> 
   5.67<回车>
C、A=2.04,B=5.67<回车>            D、2.045.67<回车>
9.C语言中普通整型变量int在内存中占___D__字节。 
A.1  
B.2 
C.3 
D.4 
10、以下程序段的输出结果是___D__。
    int a=5678; 
    printf(”%2d\n”, a); 
    A、提示出错、无结果               B、56  
    C、78                             D、5678
11、已知:char ch='A';则下列表达式的值是_B___。 
    ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch;
    A、A          B、a          C、Z         D、z
12、下列描述,正确的是__B___ 。
A、表达式3.91%5是合法的
B、用b=89作为while循环的条件是合法的
C、逗号表达式是没有值和类型的
D、字符型变量和int型变量的操作完全不同
13、阅读以下程序:
    main()
   {int x;
    scanf("%d",&x);
    if(x--<5) printf("%d",x);
    else printf("%d",x++);
   }
   程序运行后,如果从键盘上输人5,则输出结果是__B__ 。
A、3           B、 4           C、 5            D、 6
14. 在C语言中,存储一个整型、字符型、双精度实型变量所需的字节__A___。
A.2、1、8                        
B.4、1、4 
C.4、1、4                         
D.2、2、8 

15、下列程序的运行结果是__C___。
#include ”stdio.h”
main()
{ int k;
  k=3;
  switch(k)
  { case 1: printf(”%d\n”, k++);
    case 2: printf(”%d\n”, k++);
    case 3: printf(”%d\n”, k++);
    case 4: printf(”%d\n”, k++);
            break;
    default: printf(”Full!\n”);
   }
 }
A、3            B、4            C、3            D、4
                                   4               4
16、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
    m=2、n=1,则逻辑表达式(m==a<b)&&(n==c<d) 的值为_A_。
     A、0        B、 1       C、2         D、 3
17. 不是C语言提供的合法关键字是__D___。
A.switch    
B.char       
C.case       
D.this

18.设x、y和temp均为long int型变量,则以下语句:
{temp=x; x=y; y=temp;} 的功能是__D__。
A、把x和y按从大到小排列    
B、把x和y按从小到大排列 
C、无确定结果
D、交换变量x和变量y的值 
19、以下程序的输出结果是 __A__ 。
main()
  {int a, b;
   for(a=1, b=1; a<=100; a++)
     {if(b>=10) break;
      if (b%3==1)
         { b+=3; continue; }
     }
   printf("%d\n",a);
  }
   A、4           B、6          C、5          D、101
20. 下面程序的输出是( D )。
#include<stdio.h>
void main()
{ int k=11;
  printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A.k=11,k=12,k=11          
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb        
D. k=11,k=13,k=b

21、执行以下程序后输出的结果是__D___。
main()
{ int y=10;
  do {y--;}
  while(--y);
  printf("%d\n",y--);}
  A、-1         B、1          C、8          D、0
22、执行以下程序后输出的结果是__B___。
main()
  {int i, j, w=0;
   for(i=4; i; i--)
     for(j=1;j<=2;j++)
        w=w+i*j;  w=i*j;
    printf("%d\n",w);
  }
 A、4           B、0           C、1           D、30
25. C语言程序的基本单位是__C___。
A、程序行                      
B、语句
C、函数                         
D、字符
26. C语言中主函数的个数为__A___个。 
A.1  
B.2 
C.无穷个  
D.任意个
27. 执行下面程序中的输出语句后,输出结果是__B___。
#include<stdio.h>
void main()
{int a;
 printf("%d\n",(a=3*5,a*4,a+5));
}
A.65        
B.20        
C.15        
D.10
28.字符(char)型数据在微机内存中的存储形式是__D___。
A.反码   
B.B.补码   
C.C. EBCDIC码   
D.D.ASCII码
29.下列不是C语言基本数据类型的是 __D___。
A.字符型                  
B.整型 
C.浮点型                  
D.结构体
30.普通整形int能够处理的数据范围是__D___ 
A.-32767~32767              
B.-32768~32768 
C.-32767~32768             
D.-32768~32767

二、判断题
1. C语言具有简洁明了的特点。(T)
2. 预处理命令的前面必须加一个“#”号。(T)
3. 标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(T )
4.continue不是结束本次循环,而是终止整个循环的执行。(F)
5.在对数组全部元素赋初值时,不可以省略行数,但能省略列数(F)
6.函数的实参传递到形参有两种方式值传递和地址传递(T)
7.直接访问就是直接利用变量的地址进行存取直接访问(T)
8.表达式语句和表达式没有什么区别。(F)
9.if(a=5)是允许的。(T)
10.C语言的三种循环不可以互相嵌套。(F)
11.语句int *point;中的point是指针变量名。(T)
12.主函数和其它函数之间可以相互调用。(F)
13.puts( )和gets( )函数只能输入或输出一个字符。(F)
14.可以对字符型数组元素进行整体输入、输出。(T)
15.do-while语句构成的循环不能用其他语句构成的循环来代替。(F)
16.在一个函数内的复合语句中定义的变量可以在本函数范围内有效。(T)
17.函数必须有返回值,否则不能使用函数。(F)
18.for(;;;);语句相当于while(1);语句。(T)
19.C程序的执行总是从第一个定义的函数开始。(F) 
20.C语言中的关键字专门用作语言的特定成分,而不能作为一般标识符使用。(T)

以上题库转载链接(120条消息) 大一C语言复习题库_假技术po主的博客-CSDN博客_大一c语言题库1.c语言中double

double是指双精度浮点数类型

float指单精度浮点数类型。它们的区别是精度的不同,double类型的精度约等于float的两倍。精度指精确到小数点后多少位。都是用来声明变量或常量类型的

4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是_C___ 。

A、4.500000 B、4

C、4.000000 D、2.000000

1、一个C程序的执行是从__A___。
   A、本程序的main函数开始,到main函数结束
   B、本程序的main函数开始,到本程序文件的最后一个函数结束
   C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
   D、本程序文件的第一个函数开始,到本程序main函数结束

/ 是除,如果是整数相除,只取整数部分,没有四舍五入之类的。

% 是取模,即取除法的余数。

在C语言中,要求运算数必须是整型的运算符是__D__。

A、/    B、++     C、*=      D、%

C语言中普通整型变量int在内存中占___4个__字节。

已知:char ch='A';则下列表达式的值是_B___。 ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch; A、A B、a C、Z D、z

char 是字符 选项一堆误导 输出结果仍然是字符a

c语言中scanf函数

1.输入整数

  int age=0;
  printf("请输入您的年龄:");   // 提示文字不要换行,让用户在后面输入,下同。
  scanf("%d",&age);     // 在变量名前要加符号&,取变量的地址。

同理

2.输入字符               %c 后面要加&

3.输入浮点数             %lf 后面要加&

4.输入字符串              %s 后面可以不加&

  int age=0;
  char xb=0;
  double weight=0;
  char name[21];
  memset(name,0,sizeof(name));
  printf("请输入您的姓名、姓别(x-男;y-女),年龄和体重,中间用空格分隔:");
  scanf("%s %c %d %lf",name,&xb,&age,&weight);   // 只有name变量前没加&。

13、阅读以下程序:
    main()
   {int x;
    scanf("%d",&x);
    if(x--<5) printf("%d",x);
    else printf("%d",x++);
   }
   程序运行后,如果从键盘上输人5,则输出结果是__B__ 。
A、3           B、 4           C、 5            D、 6

可以认为k=x--<5,(x为5),这时候k=5,x=x-1=4,k不小于5,所以执行下面else,再认为f=x++,那语句变为打印f的值,那即是f=4,当然此时x=x+1=5

14. 在C语言中,存储一个整型、字符型、双精度实型变量所需的字节__A___。
A.2、1、8                        
B.4、1、4 
C.4、1、4                         
D.2、2、8 

64位编译器 char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 8个字节 long long: 8个字节 unsigned long: 8个字节

15、下列程序的运行结果是__C___。
 

#include ”stdio.h”
main()
{ int k;
  k=3;
  switch(k)
  { case 1: printf(”%d\n”, k++);
    case 2: printf(”%d\n”, k++);
    case 3: printf(”%d\n”, k++);
    case 4: printf(”%d\n”, k++);
            break;
    default: printf(”Full!\n”);
   }
 }

C语言中Switch语句通常用于判断,switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的语句,如果不相等则跳到下一个case语句,当表达式和常量值相等,switch语句会将当前case语句以及后面所有的case语句全部输出。

(120条消息) C语言中的switch语句基本用法_钟爱陈奕迅的博客-CSDN博客_c语言switch的用法

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int day = 0;				  //定义一个整型变量day,并对其赋值为0
	printf("请输入一个数字\n");   //让用户输入一个数字
	scanf("%d", &day);				//接收用户输入的数字
	switch (day)
	{
	case 1:printf("星期一\n");
			break;
	case 2:printf("星期二\n");
			break;
	case 3:printf("星期三\n");
			break;
	case 4:printf("星期四\n");
			break;
	case 5:printf("星期五\n");
			break;
	case 6:printf("星期六\n");
			break;
	case 7:printf("星期天\n");
			break;
	}
	return 0;
}

这样我们就很容易理解上面的程序 给出k=3 跳到case3判断为k++即输出为4

16、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
    m=2、n=1,则逻辑表达式(m==a<b)&&(n==c<d) 的值为_A_。
     A、0        B、 1       C、2         D、 3

&&且操作 ,&&为界将表达式分为两部分,他会先算前一部分,如果前一部分为假,他将停止运算,如果为真,他才会算第二部分,你这里第一部分就为假了,第二部分当然也就不会算了。
例如: a && b ,只有在前一个条件a为真,才会去判断条件b ;若条件a为假,则条件b不会执行。

||或操作, a||b a或者b有一个为真时  式子就返回true,都为就假才返回false。

(120条消息) C语言中 || 和 &&_Alen.Wang的博客-CSDN博客_c语言||

18.设x、y和temp均为long int型变量,则以下语句: {temp=x; x=y; y=temp;} 的功能是__D__。

经典交换值

19、以下程序的输出结果是 __A__ 。
main()
  {int a, b;
   for(a=1, b=1; a<=100; a++)
     {if(b>=10) break;
      if (b%3==1)
         { b+=3; continue; }
     }
   printf("%d\n",a);
  }
   A、4           B、6          C、5          D、101
这题得先理解+=

  • 复合赋值运算符“+=”,表示的意思是先将运算符左边操作数指向的变量值和右边的操作数执行相加操作,然后再将相加的结果赋值给左边的操作数指向的变量。例如下面语句:

int a = 10;

a += 20; => a = a + 20

后就会理解上面程序 当a=4时 b>10  b是依次加3 当a=4时 b=12

20. 下面程序的输出是( D )。
#include<stdio.h>
void main()
{ int k=11;
  printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A.k=11,k=12,k=11          
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb        
D. k=11,k=13,k=b

这里分析的是输出类型 %o是指用8进制的方法输出    %x是指用16进制的方式输出

27. 执行下面程序中的输出语句后,输出结果是__B___。
#include<stdio.h>
void main()
{int a;
 printf("%d\n",(a=3*5,a*4,a+5));
}
A.65        
B.20        
C.15        
D.10
这里的a是赋值   跳过a*4 a=15+5=20

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaituozhizzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值