c语言程序设计廖雷答案,豆丁网c语言程序设计

发布时间:2023-01-06

本文目录一览:

  1. C语言程序设计2015A卷-
  2. C语言程序设计(39)
  3. C语言有什么用?为什么我觉得它只能拿来做做数字计算?看完廖雷的《c语言程序设计》还是不知道怎么用c
  4. C语言程序设计(201803)测试求大佬帮忙!

C语言程序设计2015A卷-

一、判断题(每小题1分,共15分)

  1. 标准C中,只有数值型数据才能进行4则混合运算。
  2. 标准C中,_a是合法的自定义标识符。
  3. 有定义:float f; 表达式 f += (int)3.6 % 2 不符合C语言语法。
  4. 标准C中,逻辑运算的结果只有是1表示满足条件,而结果是0表示不满足条件。
  5. (原题中未列出第5题)
  6. 以下运算符排列顺序满足按照优先级从高到低的排列:!==-`。
  7. 语句 for(;;); 是非法的。
  8. 在C语言程序中可以由多个源文件构成,每个源文件都可以有自己的main()函数。
  9. whiledo-while 的主要区别是后者至少无条件执行一次。
  10. 数组名代表数组的首地址是常量,所以将实参数组名表示地址传给形参数组名是错误的。
  11. 当函数没有返回值类型时,表示函数类型为 void
  12. C语言中,指针变量作函数参数时,它们不是采取单向值传递的方式。
  13. 一个函数中只允许有一条 return 语句。
  14. 在C语言中,如果没有说明变量的存储类型是 auto 类型的。
  15. 由于指针中所存放的地址都是整数,所以整型指针和浮点型指针可以相互赋值。

二、填空题(每空1分,共15分)

  1. a=4; b=5, c=6; 则表达式 c == (b = -a);c 的值是 (1)6
  2. 计算表达式的值:
    • 4 && -4 的值:(2)1
    • int a=3, b=4, c=5,则表达式 a || b + c == b == c 的值:(3)1
    • x=2.5, a=7, y=4.7,则表达式 x + a % 3 * (int)(x + y) % 2 / 4 的值:(4)2.5
    • a=12,则表达式 a *= a / 5 的值:(5)24
  3. int x = 4, y = 6, z = 0; 有循环 while(x = y) { z++; y--; },则循环语句执行完后,z 值为 (6)6
  4. 变量的指针就是指该变量的 (7)地址
  5. 若有定义 int (*p)[4],则标识符 p(8)行指针,指向有四个元素的一维数组;若有定义 int *p[4],则标识符 p(9)指针数组名,该数组有四个元素,每个元素都是指针
  6. 已有定义:char *p[] = {"France", "Chinese", "Russia", "America"}; 则语句 printf("%s", p[2]); printf("%c", *(p[1] + 2)); printf("%c", *(*(p + 1) + 1)); 的输出结果分别为:(10)Russia(11)i(12)h
  7. 已定义:int x=65; 若格式化输出结果为 "A, 65",则对应的格式化输出语句为 printf("%c, %d", x, x);
  8. 已定义:int a[][2] = {1, 2, 3, 4, 2, 6, 7, 2}; 则 `a[3][0] = (15)7

三、简答题(每题4分,共12分)

  1. 简述选择语句 ifelse 语句对与 switch 语句的区别。
  2. 简述在循环语句中,breakcontinue 的区别。
  3. int a[5]*p = a; 简述 *p++(*p)++ 的区别。

四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4分,共16分)

  1. (1)缺 #include;(2)scanf("%f", a); 改为 scanf("%f", &a);
  2. (1)缺 sum = 0;;(2)for(i = 1; i = 3; i++) 改为 for(i = 0; i < 3; i++)
  3. (1)p1 = p2 改为 *p1 = *p2;(2)swap(a, *p) 改为 swap(a, p)
  4. (1)在 if(m > 0) 语句后添加 else if(m == 0) a = 1;;(2)添加 return(a);

五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)

  1. (1)x = 0;;(2)if(n == x);(3)s++;s = s + 1;
  2. (4)num[i];(5)max = num[i] ?;(6)num[i] != 0
  3. (7)n - i - 1;(8)a[j] > a[j + 1];(9)a[j + 1] = temp
  4. (10)count = 0;;(11)n % 10;(12)n > 0n != 0n

六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)

  1. #*#*#*
  2. main i=1 j=2 k=2
    sub i=1 j=2 k=1 x=2
    sub i=1 j=2 k=1 x=3
    

七、编程题(8分)

#include <stdio.h>
int main() {
    int i, j, flag = 0;
    char str1[90], str2[90];
    gets(str1);
    gets(str2);
    i = 0;
    do {
        flag = strcompare(str1[i], str2[i]);
        i++;
    } while (str1[i] != '\0' && str2[i] != '\0' && flag == 0);
    if (flag < 0)
        printf("%s小于%s", str1, str2);
    else if (flag == 0)
        printf("%s 等于%s", str1, str2);
    else
        printf("%s大于%s", str1, str2);
    printf("两个字符串中相同的子串为:");
    j = 0;
    i--;
    while (j < i) {
        printf("%c", str1[j]);
        j++;
    }
    return 0;
}
int strcompare(char c1, char c2) {
    return c1 - c2;
}

C语言程序设计(39)

正确的选项是最后一个:char y[10], *s; strcpy(s = y + 1, x + 1);

  • char y[10]; strcpy(y, x[4]) 中,x[4] 是一个 char 型数据,而 strcpy(s1, s2) 要求两个参数都是地址,所以不行。
  • char y[10]; strcpy(++y, x[1]) 中,y 是数组名,指针常量,不能进行 y = y + 1 这样的操作。
  • char y[10], *s; strcpy(s = y + 5, x) 中,x 是一个字符串,占用10个空间,s = y + 5 后边只有4个空间,复制后会溢出。编译没有错误,但信息已经丢失。
  • 只有 char y[10], *s; strcpy(s = y + 1, x + 1) 是正确的。

C语言有什么用?为什么我觉得它只能拿来做做数字计算?看完廖雷的《c语言程序设计》还是不知道怎么用c

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的 D.M.Ritchie 于 1972 年推出。1978 年后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C语言,适于编写系统软件,三维、二维图形和动画。具体应用比如单片机以及嵌入式系统开发。

C语言程序设计(201803)测试求大佬帮忙!

  1. 选 D
  2. 选 C;"my name" 算上空格一共 7 个字符,加上结尾的 \0 为 8 个字符,所以如果 m 前没有空格,那么答案为 C
  3. 选 C;p 指向 a[3] = 4 的地址,即 p 及其之后地址中的数值为 {4, 5, 6, 7, 8, 9, 10},所以其中第 5 个数为 p[4] = 8
  4. 选 C
  5. 选 D;A 错误,字符串应为 char 型;B 错误,数组长度不够;C 错误,没有 vhst 类型;D 正确,可看作字符数组,{} 内的数值可转为相应的 ASCII 字符
  6. 选 C;字符数组即字符串不能直接通过 = 赋值,要使用 strcpy 函数
  7. 选 C;函数实参可以是常量、变量或表达式,该题中逗号表达式 (exp2, exp3) 返回 exp3(exp4, exp5, exp6) 返回 exp6,因此一共 3 个实参
  8. 选 C;A 错误,函数调用时不用指明其参数类型;B 错误,fun 函数没有返回值,不能赋给 k;C 正确;D 错误,函数调用时不用指明其返回类型
  9. 选 A;n++ 表示先返回 n 的值,再对 n 进行自增操作,即先令 k = n,再执行 n = n + 1
  10. 选 C;if-else 不是循环结构
  11. 选 D;aa 表示数组首地址,即 aa[0],而不是 aa[1]
  12. 选 B
  13. 选 B;a[2] = 3a[2] + 1 = 4,所以 a[a[2] + 1] = a[4] = 5
  14. 选 C;A 错误,除非函数定义在调用语句之后的位置,才需要提前声明;B 错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C 正确;D 错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的
  15. 选 B;scanf 需指明读入变量的地址,字符串名称 c 就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符
  16. 选 A
  17. 选 D;同第 6 题
    码字不易,望采纳~
推荐文章