c程序设计期中试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c程序设计期中试题及答案
一、选择题
1. C语言中,下列哪个关键字可以声明常量?
A. const
B. static
C. extern
D. volatile
答案:A. const
2. 下列关于指针的说法中,错误的是?
A. 指针保存的是变量的地址
B. 指针变量必须在使用之前初始化
C. 指针可以指向一个函数
D. 指针占用的内存空间和指针指向的数据类型有关
答案:B. 指针变量必须在使用之前初始化
3. 下列循环结构中,哪个语句是用于结束当前循环,进入下一轮循环的?
A. break
B. continue
D. goto
答案:B. continue
4. 下列C语言中的标准库函数中,不属于输入输出函数的是?
A. printf()
B. scanf()
C. gets()
D. malloc()
答案:D. malloc()
5. C语言中,以下哪个运算符的优先级最高?
A. =
B. &&
C. *
D. ?:
答案:D. ?:
二、填空题
1. 编写一个函数,判断一个数是否为质数。函数原型为:
int isPrime(int num);
```c
int isPrime(int num) {
int i;
if (num <= 1) {
return 0;
}
for (i = 2; i < num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
2. 填写以下代码的输出结果:```c
#include
int main() {
char str[] = "Hello";
printf("%d\n", sizeof(str));
printf("%d\n", strlen(str));
return 0;
}
```
答案:
8
5
三、编程题
1. 编写一个C程序,实现将一个字符串中的小写字母转换为大写字母的功能。要求原字符串不变,结果存放在新的字符串中。函数原型为:
void convertToUpper(const char* src, char* dest);
答案:
```c
#include
#include
void convertToUpper(const char* src, char* dest) {
while (*src) {
if (*src >= 'a' && *src <= 'z') {
*dest = *src - 32;
} else {
*dest = *src;
}
src++;
dest++;
}
*dest = '\0';
}
int main() {
const char* src = "Hello, World!";
char dest[20];
convertToUpper(src, dest);
printf("原字符串:%s\n", src);
printf("转换后的字符串:%s\n", dest); return 0;
}
```
2. 编写一个C程序,实现将一个整数数组中的元素按照从小到大的顺序进行排序。要求使用冒泡排序算法实现。函数原型为:void bubbleSort(int arr[], int len);
答案:
```c
#include
void bubbleSort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {4, 2, 8, 5, 1};
int len = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, len);
printf("排序后的数组:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
以上是C程序设计期中试题及答案的内容。希望对你有所帮助!