本文目录一览:
- C语言程序设计2015A卷-
- C语言程序设计(39)
- C语言有什么用?为什么我觉得它只能拿来做做数字计算?看完廖雷的《c语言程序设计》还是不知道怎么用c
- C语言程序设计(201803)测试求大佬帮忙!
C语言程序设计2015A卷-
一、判断题(每小题1分,共15分)
- 标准C中,只有数值型数据才能进行4则混合运算。
- 标准C中,_a是合法的自定义标识符。
- 有定义:float f; 表达式
f += (int)3.6 % 2
不符合C语言语法。 - 标准C中,逻辑运算的结果只有是1表示满足条件,而结果是0表示不满足条件。
- (原题中未列出第5题)
- 以下运算符排列顺序满足按照优先级从高到低的排列:
、
!、
==、
-`。 - 语句
for(;;);
是非法的。 - 在C语言程序中可以由多个源文件构成,每个源文件都可以有自己的main()函数。
while
和do-while
的主要区别是后者至少无条件执行一次。- 数组名代表数组的首地址是常量,所以将实参数组名表示地址传给形参数组名是错误的。
- 当函数没有返回值类型时,表示函数类型为
void
。 - C语言中,指针变量作函数参数时,它们不是采取单向值传递的方式。
- 一个函数中只允许有一条
return
语句。 - 在C语言中,如果没有说明变量的存储类型是
auto
类型的。 - 由于指针中所存放的地址都是整数,所以整型指针和浮点型指针可以相互赋值。
二、填空题(每空1分,共15分)
- 若
a=4; b=5, c=6;
则表达式c == (b = -a);
中c
的值是 (1)6。 - 计算表达式的值:
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;
- 若
int x = 4, y = 6, z = 0;
有循环while(x = y) { z++; y--; }
,则循环语句执行完后,z
值为 (6)6。 - 变量的指针就是指该变量的 (7)地址。
- 若有定义
int (*p)[4]
,则标识符p
是 (8)行指针,指向有四个元素的一维数组;若有定义int *p[4]
,则标识符p
是 (9)指针数组名,该数组有四个元素,每个元素都是指针; - 已有定义:
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。 - 已定义:
int x=65;
若格式化输出结果为"A, 65"
,则对应的格式化输出语句为printf("%c, %d", x, x);
。 - 已定义:
int a[][2] = {1, 2, 3, 4, 2, 6, 7, 2};
则 `a[3][0] = (15)7。
三、简答题(每题4分,共12分)
- 简述选择语句
if
和else
语句对与switch
语句的区别。 - 简述在循环语句中,
break
和continue
的区别。 - 若
int a[5]
,*p = a;
简述*p++
和(*p)++
的区别。
四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4分,共16分)
- (1)缺
#include
;(2)scanf("%f", a);
改为scanf("%f", &a);
- (1)缺
sum = 0;
;(2)for(i = 1; i = 3; i++)
改为for(i = 0; i < 3; i++)
- (1)
p1 = p2
改为*p1 = *p2
;(2)swap(a, *p)
改为swap(a, p)
- (1)在
if(m > 0)
语句后添加else if(m == 0) a = 1;
;(2)添加return(a);
五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)
- (1)
x = 0;
;(2)if(n == x)
;(3)s++;
或s = s + 1;
- (4)
num[i]
;(5)max = num[i] ?
;(6)num[i] != 0
- (7)
n - i - 1
;(8)a[j] > a[j + 1]
;(9)a[j + 1] = temp
- (10)
count = 0;
;(11)n % 10
;(12)n > 0
或n != 0
或n
六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)
#*#*#*
-
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)测试求大佬帮忙!
- 选 D
- 选 C;
"my name"
算上空格一共 7 个字符,加上结尾的\0
为 8 个字符,所以如果m
前没有空格,那么答案为 C - 选 C;
p
指向a[3] = 4
的地址,即p
及其之后地址中的数值为{4, 5, 6, 7, 8, 9, 10}
,所以其中第 5 个数为p[4] = 8
- 选 C
- 选 D;A 错误,字符串应为
char
型;B 错误,数组长度不够;C 错误,没有vhst
类型;D 正确,可看作字符数组,{} 内的数值可转为相应的 ASCII 字符 - 选 C;字符数组即字符串不能直接通过
=
赋值,要使用strcpy
函数 - 选 C;函数实参可以是常量、变量或表达式,该题中逗号表达式
(exp2, exp3)
返回exp3
,(exp4, exp5, exp6)
返回exp6
,因此一共 3 个实参 - 选 C;A 错误,函数调用时不用指明其参数类型;B 错误,
fun
函数没有返回值,不能赋给k
;C 正确;D 错误,函数调用时不用指明其返回类型 - 选 A;
n++
表示先返回n
的值,再对n
进行自增操作,即先令k = n
,再执行n = n + 1
- 选 C;
if-else
不是循环结构 - 选 D;
aa
表示数组首地址,即aa[0]
,而不是aa[1]
- 选 B
- 选 B;
a[2] = 3
,a[2] + 1 = 4
,所以a[a[2] + 1] = a[4] = 5
- 选 C;A 错误,除非函数定义在调用语句之后的位置,才需要提前声明;B 错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C 正确;D 错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的
- 选 B;
scanf
需指明读入变量的地址,字符串名称c
就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符 - 选 A
- 选 D;同第 6 题
码字不易,望采纳~