大一C语言程序设计试题解析

简单记录一下吧,这是在CSDN发布的第一篇文章,在这之前一直都是记录在自己搭建的博客里,也希望在这里与各位大佬多多交流学习!

原文链接:大一C语言程序设计试题解析[试题详解]-星雨博客

1.下面程序的输出是(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=11B. k=11 , k=13 , k=13
C. k=11 , k=013 , k=oxbD. k=11 , k=13 , k=b

2.在下列选项中,不正确的赋值语句是(D)

A. ++t;B. n1=(n2=(n3=0));
C. k=i=j;D. a=b+c=1;

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

A. '\t'B. "A"
C. 65D. A

4. 表达式:10!=9 的值是(D)

A. trueB. 非零值
C. 0D. 1

5.C语言提供的合法的数据类型关键字是(B)

A. DoubleB. short
C integerD. Char

6.字符(char)型数据在微机内存中的存储形式是(D)

A. 反码B. 补码
C. EBCDIC码D. ASCII码

7.C语言程序的基本单位是(C)

A. 程序行B. 语句
C. 函数D. 字符

8.设int a = 12 ,则执行完语句a+=a-=a*a 后,a的值是(D)

A. 552B. 264
C. 144D. -264

9.执行下面程序中的输出语句后,输出结果是(B)

#include <stdio.h>

void main()
{
  int a;
  printf("%d\n", (a = 3 * 5, a * 4,a + 5));
}
A. 65B. 20 
C. 15 D. 10

10.下面程序的输出是(B)

#include <stdio.h>

void main()
{
  int x = 023;
  printf("%d\n", --x);
}
A. 17B. 18
C. 23D. 24

11.下面程序的输出的是(C)

#include <stdio.h>

void main()
{
  int x = 10, y = 3;
  printf("%d\n", y = x / y);
}
A. 0B. 1
C. 3D. 不确定的值

12.已知字母A的ASCII码为十进制的65,下面程序的输出是(A)

#include <stdio.h>

void main()
{
  char ch1, ch2;
  ch1 = 'A' + '5' - '3';
  ch2 = 'A' + '6' - '3';
  printf("%d,%c\n", ch1, ch2);
}
A. 67,DB. B,C
C. C,DD. 不确定的值

13. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(D)

A. a<>0B. !a
C. a=0D. a

14.以下程序的输出结果是(D)

#include <stdio.h>

void main()
{
  int x = 10, y = 10;
  printf("%d%d\n", x--, --y);
}
A. 10 10B. 9 9 
C. 9 10D. 10 9

15.设有如下定义:int x =10 , y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是(B)

A. 1 B. 0
C. 4D. 3

16.为表示关系x≥y≥z,应使用C语言表达式(A)

A. (X>=Y)&&(Y>=Z)B. (X>=Y)AND(Y>=Z)
C. (X>=Y>=Z)D. (X>=Y)&(Y>=Z)

17.C语言中非空的基本数据类型包括(B)

A. 整数,实型,逻辑型B. 整型,实型,字符型
C. 整型,实型,逻辑型D. 整型,实型,逻辑型,字符型

18.若x和y都是int型变量,x=100,y=200,且有下面的程序片段。printf("%d",(x,y));上面程序片段的输出结果为(A)

A. 200B. 100
C. 100 200D. 输出格式符不够,输出不确定的值

19.阅读下面的程序,如果在键盘上输入abc<回车>,则程序的运行结果是(A)

#include <stdio.h>

void main() 
{
  char ch;
  scanf_s("%3c", &ch);
  printf("%c", ch);
}
A.aB.b
C.cD.程序语法错误

20.阅读下面的程序,则程序的运行结果是(D)

#include<stdio.h>

void main()
{
	int i, j;
	i = 010;j = 9;
	printf("%d,%d", i-j, i + j);
}
A. 1,19B. -1,19
C. 1,17D. -1,17

21.阅读下面的程序,程序的运行结果是(C)

#include <stdio.h>

void main()
{
  int i, j, m, n;
  i = 8; j = 10;
  m = ++i; n = j++;
  printf("%d,%d,%d,%d", i, j, m, n);
}
A. 8,10,8,10B. 9,10,8,11
C. 9,11,9,10D. 9,10,9,11

22.已知 a=12 ,则表达式 a+=a-=a*=a 的结果是(A)

A. 0B. 144
C. 12D. -264

23.若已定义 int a ,则表达式 a=10,a+10,a++的值是(B)

A. 20B. 10
C. 21D. 11

24.阅读下面的程序,如果从键盘上输入1234567<回车>,则程序的运行结果是(D)

#include <stdio.h>

void main()
{
  int i, j;
  scanf_s("%3d%2d", &i, &j);
  printf("i=%d,j=%d\n", i, j);
}
A. i=123,j=4567B. i=1234,j=567
C. i=1,j=2D. i=123,j=45

25.下面程序的输出结果是(D)

#include <stdio.h>

void main()
{
  int a = -1, b = 4, k; k = (++a <= 0) && (b-- <= 0);
  printf("%d,%d,%d\n", k, a, b);
}
A. 1,1,2B. 1,0,3
C. 0,1,2D. 0,0,3

26.下面程序的输出结果是(A)

#include <stdio.h>

void main()
{
  int a = 5, b = 3;
  float x = 3.14, y = 6.5;
  printf("%d,%d\n", a + b != a - b, x <= (y -= 6.1));
}
A. 1,0B. 0,1
C. 1,1D. 0,0

27.执行下面程序段后,输出结果是(A)

#include <stdio.h>

void main()
{
  int a; 
  int b = 65536; a = b; 
  printf("%d\n", a);
}
A. 65536B. 0
C. -1D. 128

28.若有以下定义和语句,则输出结果为(B)

#include <stdio.h>

void main()
{
  int a = 010,b = 0x10, c = 10;
  printf("%d,%d,%d\n", a, b, c);
}
A. 10,10,10B. 8,16,10
C. 8,10,10D. 8,8,10

29.已知有double型变量 x=2.5,y=4.7,整型变量 a=7,则表达式x+a%3*(int)(x+y)%2/4的值(B)

A. 2.4B. 2.5
C. 2.75D. 0

30.若定义xy是整型变量,x=2; ,则表达式y=2.75+x/2 的值是(C)

A. 5.5B. 5
C. 3D. 4.0

31.以下程序的输出结果是(D)

#include <stdio.h>

void main()
{
  int a = 12, b = 12;
  printf("%d,%d\n", --a, ++b);
}
A. 10,10B. 12,12
C. 11,10D. 11,13

32. 有以下语句:int x = 10; x += 3 + x % (3) ,则 的值是(A)

A. 14B. 15
C. 11D. 12

33.若 d 为 double 型变量,则表达式 d = 1 ,d + 5 ,d++的值是(C)

A. 1B. 6.0
C. 2.0D. 1.0

34. 表达式 5!= 3 的值是(D)

A. TB. 非零值
C. 0D. 1

35. 若有定义 int a = 12,n = 5,则表达式 a % = (n % 2),运算后,a 的 值(A)

A. 0B. 1
C. 12D. 6

36.若有定义 int x = 3,y = 2 和 float a = 2.5,b = 3.5,则表达式: (x + y) % 2 + (int) a / (int) b 的值是(D)

A. 0B. 2
C. 1.5D. 1

37、在C语言中,以下叙述不正确的是(A)

A. 在C程序中,无论是整数还是实数,都能被准确无误的表示
B. 在C程序中,变量名代表存储器中的一个位置
C. 静态变量的生存期与整个程序的生存期相同
D. C语言中变量必须先定义后引用

38.C语言中的变量名只能由字母,数字和下划线三种字符组成.且第一个字符(C)

A. 必须为字母
B. 必须为下划线
C. 必须为字母或下划线
D. 可以是字母,数字或下划线中的任意一种

39.设有说明: char w ; int x ; float y ; double z;则表达式: w * x + z - y 值的数据类型是(D)

A. floatB. char
C. intD. double

40、一个C语言的执行是从(A)

A. 本程序的主函数开始,到本程序的主函数结束
B. 本程序的第一个函数开始,到本程序的最后一个函数结束
C. 本程序的主函数开始,到本程序的最后一个函数结束
D. 本程序的第一个函数开始,到本程序的主函数结束

41.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是

A. 10<a<15B. a==11 || a==12 || a==13 || a==14
C. a>10&&a<15D. !(a<=10)&&!(a>=15)

42.下列程序执行后的输出结果是(C)

#include <stdio.h>

void main()
{
  int a = 5, b = 60, c;
  if (a < b) 
  {
    c = a * b;;
    printf("%d*%d=%d\n", b, a, c);
  }
  else
  {
    c = b / a;
    printf("%d/%d=%d\n", b, a, c);
  }
}
A. 60 / 5 = 12B. 300
C. 60 * 5 = 300D. 12

43.如果c为字符型变量,判断c是否为空格,(假设已知空格 ASCI码为32)不能使用(C)

A. if (c == '32')B. if (c == 32)
C. if (c == '\40')D. if(c == ' ')

44. 运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是(D)

#include <stdio.h>

void main()
{
  int x, y;
  scanf_s("%d,%d", &x, &y);
  if (x == y)printf("x==y");
  else if (x > y)printf("x > y");
  else printf("x<y");
}
A. 3 < 5B. 5 > 3
C. x > yD. x < y

45.运行下面的程序时,若从键盘输入数据为“6,5,7<CR>",则输出结果是(C)

#include <stdio.h>

void main()
{
  int a, b, c;
  scanf_s("%d,%d,%d", &a, &b, &c);
  if (a > b)
    if (a > c)
      printf("%d\n", a);
  else
    printf("%d\n", c);
  else if (b > c)
    printf("%d\n",b);
  else printf("%d\n", c);
}
A. 5B. 6
C. 7D. 不确定值

46.执行下面程序时,若从键盘输入”2<CR>",则程序的运行结果是(A)

#include <stdio.h>

void main()
{
  int k;
  char cp;
  cp = getchar();
  if (cp >= '0' && cp <= '9')
    k = cp - '0';
  else if (cp >= 'a' && cp <= 'f')
    k = cp - 'a' + 10;
  else k = cp - 'A' + 10;
  printf("%d\n", k);
}
A. 2B. 4
C. 1D. 10

47.运行下面程序时,从键盘输入“2.0<CR>",则输出结果是(B)

#include <stdio.h>

void main()
{
  float a, b;
  scanf_s("%f", &a);
  if (a < 0.0)
    b = 0.0;
  else if ((a < 0.5) && (a != 2))
    b = 1.0 / (a + 2.0);
  else if (a < 10.0)
    b = 1.0 / 2;
  else b = 10.0;
  printf("%f\n", b);
}
A. 0.000000B. 0.500000
C. 1.000000D. 0.250000

48.执行下面程序后,运行结果是(A)

#include <stdio.h>

void main()
{
  int x = 41, y = 1;
  if (x % 3 == 0 && x % 7 == 0)
  {
    y += x;
    printf("y=%d\n", y);
  }
  else
  {
    y = x;
    printf("y=%d", y);
  }
}
A. y=41B. y=43
C. y=42D. y=1

49.运行下面程序时,从键盘输入”12,34,9<CR>",则输入结果是(C)

#include <stdio.h>

void main()
{
  int x, y, z;
  scanf_s("%d,%d,%d", &x, &y, &z);
  if (x < y)
    if (y > z)
      printf("%d\n", z);
    else
      printf("%d\n", y);
  else if (x < z)
    printf("%d\n", z);
  else
    printf("%d\n", x);
}
A. 34B. 12
C. 9D. 不确定的值

50.运行下面程序时,从键盘输入字母H,则输出结果是(C)

#include <stdio.h>

void main()
{
  char ch;
  ch = getchar();
  switch (ch)
  {
  case 'H':
    printf("Hello!\n");
  case 'G':
    printf("Good morning!\n");
  default :
    printf("Bye_Bye!\n");
  }
}
A. Hello!
B. Hello!
Good morning!
C. Hello!
Good morning!
Bye_Bye!
D. Hello!
Bye_Bye!

51. 执行下列此程序段后的输出结果是(A)

#include <stdio.h>

void main()
{
  int x = 1, y = 1, z = 1;
  x += y += z;
  printf("%d\n", x < y ? y : x);
}
A. 3B. 2
C. 1D. 4

52.设ch是char型变量,值为‘A’,则表达式ch = (ch >= 'A' && ch <= 'Z') ? ch + 32 : ch;的值是(B)

A. ZB. a
C. zD. A

53. 下面程序的输出结果是(C)

#include <stdio.h>
void main() {
    int x=8, y=7, z=9;
    if (x < y)

        z = 0;
    else
        z = 1;
    printf("%d\n", z);
}
A. 8B. 1
C. 9D. 0

54.运行下面程序时,若从键盘输入“5<CR>”,则程序的输出结果是(B)

#include <stdio.h>
void main() {
    int a;
    scanf_s("%d", &a);
    if (a++ > 5)
        printf("%d\n", a);
    else
        printf("%d\n", a--);
}
A. 7B. 6
C. 5D. 4

55.运行下面程序时,若从键盘输入“3, 4<CR>”,则程序的输出结果是(B)

#include <stdio.h>
void main() {
    int a, b, s;
    scanf_s("%d, %d", &a, &b);
    s = a;
    if (s < b)
        s = b;
    s = s * s;
    printf("%d\n", s);
}
A. 14B. 16
C. 18D. 20

56.下列程序的执行结果是(D)

#include <stdio.h>
void main() {
    int x = 0, y = 1, z = 0;
    if (x = z = y)
        x = 3;
    printf("%d,%d\n", x, z);
}
A. 3,0B. 0,0
C. 0,1D. 3,1

57.假定等级和分数有以下对应关系,等级:A 分数 :85~100,等级:B分数:60~84,等级:C分数:60以下,对于等级grade输出相应的分数区间,能够完成该功能的程序是(D)

A.
switch (grade)
case 'A': printf("85--100\n");
case 'B': printf("60--84\n");
case 'C': printf("60以下\n");
default: printf("等级错误!"\n);
B.
switch (grade)
case 'A': printf("85--100\n");
break;
case 'B' : printf("60--84\n");
case 'C': printf("60以下\n");
default: printf("等级错误!"\n);
C.
switch (grade)
case 'A': printf("85--100\n");
break;
case 'B': printf("60--84\n");
break;
case 'C': printf("60以下\n");
default: printf("等级错误!"\n);
D.
switch (grade)
case 'A': printf("85--100\n");
break;
case 'B': printf("60--84\n");
break;
case 'C': printf("60以下\n");
break;
default: printf("等级错误!"\n);

58.能够完成如下函数计算的程序段是(B)

图片[1]-大一C语言程序设计试题解析[试题详解]-星雨博客

A.
y = 1;
if (x != 1)
if (x > 0)
y = 1;
else
y = 0;
B.
if (x >= 0)
if (x > 0)
y = 1;
else
y = 0;
else
y = -1;
C.
y = 0;
if (x >= 0)
if (x > 0)
y = 1;
else y = 0;
D.
y = -1;
if (x > 0)
y = 1;
else y = -1;

59.有如下程序,该程序的输出结果是(C)

#include <stdio.h>
void main() {
    float x = 5.0, y;
    if (x < 0.0)
        y = 0.0;
    else if (x < 10.0)
        y = 1.0 / x;
    else
        y = 1.0;
    printf("%f\n", y);
}
A. 0.000000B. 0.50000
C. 0.200000D. 1.000000

60.以下程序的执行结果是(B)

#include <stdio.h>
void main() {
    int x = 1, y = 0;
    switch (x) {
    case 1: switch (y) {
    case 0: printf("first\n"); break;
    case 1: printf("second\n"); break;
    }
    case 2: printf("third\n");
    }
}
A. first
second
B. first
third
C. firstD. second
third

更多内容请前往:大一C语言程序设计试题解析[试题详解]-星雨博客

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值