C语言第二阶段考核答案

合集下载

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。

答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。

答案:*三、简答题1. 简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的元素集合。

指针是一个变量,它存储了另一个变量的内存地址。

数组名可以作为指针使用,但数组本身不是指针。

数组的大小在定义时确定,而指针可以指向不同大小的内存块。

2. 解释C语言中的递归函数。

答案:递归函数是一种函数,它在执行过程中调用自己。

递归函数通常用于解决可以分解为相似子问题的问题。

递归函数必须有一个明确的终止条件,以避免无限递归。

四、编程题1. 编写一个C语言程序,实现求1到100的和。

答案:```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转。

答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。

2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。

二、填空题1. 在C语言中,`________`关键字用于声明一个函数。

答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。

2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。

```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。

三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。

```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。

2. 编写一个C语言程序,实现将一个字符串反转。

```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。

2022c语言二级考试题及答案

2022c语言二级考试题及答案

2022c语言二级考试题及答案一、单项选择题(每小题2分,共40分)1. C语言中,用于定义变量类型为整型的关键字是()。

A. intB. floatC. doubleD. char答案:A2. 下列选项中,不是C语言标准库函数的是()。

A. printf()B. scanf()C. strcat()D. input()答案:D3. 若有以下定义和语句:```cint a=5, b=2;a=a+b;```则执行后变量a的值是()。

A. 5B. 7C. 2D. 0答案:B4. 在C语言中,以下哪个选项是正确的字符串常量?A. "123"B. '123'C. "123""D. 123答案:A5. C语言中,以下哪个选项是正确的二维数组定义?A. int a[2,3];B. int a[2][3];C. int a[2][3][];D. int a[][];答案:B6. 在C语言中,以下哪个选项是正确的函数定义?A. int fun(int a, int b);B. int fun();C. int fun(int a, int b) {}D. int fun(a, b) {}答案:C7. 下列哪个选项是C语言中的合法标识符?A. 2aB. a-bC. _a1D. int答案:C8. 若有以下定义和语句:```cint a=5, b=0;if (a=b)printf("%d", b);elseprintf("%d", a);```则执行后输出的结果是()。

A. 5B. 0C. 1D. 无输出答案:B9. C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的结构体定义?A. struct student {int age;float score;};B. struct {int age;float score;} student;C. Both A and BD. None of the above答案:C11. C语言中,以下哪个选项是正确的枚举类型定义?A. enum color {red, green, blue};B. enum {red, green, blue};C. Both A and BD. None of the above答案:C12. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. #define PI = 3.14C. #define PI 3.14D. #define PI = 3.14答案:A13. C语言中,以下哪个选项是正确的指针定义?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A14. 若有以下定义和语句:```cint a=10;printf("%d", ++a);```则执行后输出的结果是()。

二级C语言试题(含答案)

二级C语言试题(含答案)

二级C语言试题(含答案)二级C语言试题一、判断题(2×8=16分)1、printf()函数总是从新行的起始位置开始打印。

( F )2、所有的变量在使用前都必须予以申明。

(F)3、在申明变量时必须给出变量的类型。

(T)4、C语言认为变量number和NuMbEr是相同的。

( F)5、打印三行输出的C语言程序必须用三条printf语句。

(F)6、求余运算符%只能用于两个整数操作数。

(T)7、switch选择结构中必须有default子句。

(F)8、如果x>y或ay&&a<b)为真。

(f)< p="">二、选择题(3×16=48分)1、下面实现换行功能的格式符为。

(B )A. \tB. \nC. \aD. \k2. C语言程序由什么组成?(单选) CA. 子程序B. 主程序和子程序C. 函数D. 过程3. 下面哪个表达式的值为4. DA. 11/3B. 11.0/3C. (float)11/3D. (int)(11.0/3+0.5)4. 该源程序执行后,屏幕上显示什么?void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}程序运行结果:a=4,b=9.50A. a=%d,b=%f\nB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.55. 若有以下说明语句: Bchar s=’\\\092’;则下面哪一项是正确的.A. 使s的值包含2个字符B. 说明语句不合法C. 使s的值包含6个字符D. 使s的值包含4个字符6.若k,g均为int型变量,则以下语句的输出为哪一项? A int k,g;k=017;g=111;printf("%d,",k);printf("%x\n",g);A. 15,6fB. f,6fC. f,111D. 15,1117. 在C语言的if语句中,用作判断的表达式为___。

c二级考试试题和答案及分析

c二级考试试题和答案及分析

c二级考试试题和答案及分析1. 以下哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A分析:在C语言中,`int` 是一个关键字,用于声明整型变量。

而`float` 和 `double` 用于声明浮点型变量,`string` 不是C语言的关键字,它是C++中的关键字。

2. 以下哪个函数用于计算两个数的和?A. max(a, b)B. min(a, b)C. sum(a, b)D. average(a, b)答案:C分析:在C语言中,并没有内置的 `sum` 函数,但是可以通过自定义函数来实现两个数的求和。

通常,自定义的求和函数可以命名为`sum`,其函数原型可以是 `int sum(int a, int b)`。

3. 在C语言中,以下哪个语句用于声明一个整型数组?A. int array[5];B. int [5] array;C. int array[];D. int array = 5;答案:A分析:在C语言中,声明一个整型数组的正确方式是指定数组类型、数组名和数组大小。

因此,`int array[5];` 是正确的声明方式,它声明了一个包含5个整型元素的数组。

4. 以下哪个选项是C语言中的条件语句?A. ifB. switchC. whileD. for答案:A分析:在C语言中,`if` 是条件语句,用于根据条件的真假来执行不同的代码块。

而 `switch` 是多分支选择语句,`while` 和 `for` 是循环语句。

5. 在C语言中,以下哪个函数用于输出字符串?A. printf("%s", str);B. scanf("%s", str);C. puts(str);D. gets(str);答案:C分析:`puts(str)` 是C语言中用于输出字符串的函数,它会在输出的字符串后自动添加一个换行符。

计算机二级c语言考试题及答案

计算机二级c语言考试题及答案

计算机二级c语言考试题及答案一、选择题1. 下面哪个标识符不符合C语言的命名规则?A.MyVariable B.2Cool C._age D.TotalMarks答案:B.2Cool2. 在C语言中,以下表达式的结果是什么?int x = 5, y = 10;int z = x++ + --y;printf("%d", z);答案:143. 下面哪个关键字不是C语言中的关键字?A.int B.for C.while D.switch答案:D.switch4. 下面哪个函数可以用于从标准输入获取一个字符?A.getchar() B.scanf() C.gets() D.puts()答案:A.getchar()5. 在C语言中,如何声明一个指向整型数据的指针变量? A.int *x; B.int x; C.*int x; D.*x int;答案:A.int *x;二、编程题题目一:请编写一个C程序,要求用户输入一个整数n,然后计算并输出1到n的所有整数之和。

代码如下:```c#include <stdio.h>int main() {int n, sum = 0;printf("请输入一个整数:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d的和为:%d\n", n, sum);return 0;}```题目二:请编写一个C程序,输入一个字符,判断它是大写字母、小写字母还是其他字符,并分别输出结果。

代码如下:```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);if (ch >= 'A' && ch <= 'Z') {printf("输入的字符是大写字母\n");} else if (ch >= 'a' && ch <= 'z') {printf("输入的字符是小写字母\n");} else {printf("输入的字符是其他字符\n");}return 0;}```题目三:请编写一个C程序,输入一个数字n,输出n的阶乘。

c二级考试试题和答案及分析

c二级考试试题和答案及分析

c二级考试试题和答案及分析1. 题目:以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B分析:在C语言中,变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。

因此,选项B "variable2" 是合法的变量名,而其他选项因包含非法字符或不符合命名规则而不正确。

2. 题目:以下哪个选项是C语言中正确的整型常量表示?A. 0x1AB. 0X1AC. 0x1aD. 0X1a答案:A分析:C语言中的整型常量可以用十六进制形式表示,十六进制常量以"0x"或"0X"开头,后面跟着十六进制数字。

因此,选项A "0x1A" 和选项B "0X1A" 都是正确的,但选项C "0x1a" 和选项D "0X1a" 也是正确的,因为十六进制常量不区分大小写。

3. 题目:以下哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!\"D. "Hello, World!\"答案:A分析:在C语言中,字符串字面量是用双引号括起来的字符序列。

选项A "Hello, World!" 是正确的字符串字面量。

选项B 使用了单引号,表示单个字符而不是字符串。

选项C 和选项D 中的反斜杠没有被正确转义,因此它们不是有效的字符串字面量。

4. 题目:以下哪个选项是C语言中正确的函数声明?A. int add(int a, int b);B. int add(a, b);C. add(int a, int b);D. int add();答案:A分析:在C语言中,函数声明需要指定返回类型和参数类型。

2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷二级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.数组指定部分逆序重放将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。

时间限制:1000内存限制:65536输入:有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。

第二行是n个整数,每两个整数之间用空格分隔。

输出:只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。

样例输入:5386541样例输出:56841参考答案:#include<bits/stdc++.h>using namespace std;int a[1000],b[1000];int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}for(int i=k-1;i>=0;i--){cout<<b[i]<<';';}for(int i=k;i<n;i++){cout<<a[i]<<';';}}第2题.谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,求考第k名学生的学.号和成绩。

时间限制:1000内存限制:65536输入:第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。

其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。

输出:输出第k名学生的学.号和成绩,中间用空格分隔。

(注:请用%g输出成绩)。

样例输入:539078800167.89078800290.390788003619078800468.49078800573.9样例输出:9078800468.4参考答案:#include<bits/stdc++.h>using namespace std;int sum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;}int main(){int i,j,t,n,a[1000],b[1000];cin>>n;for(i=0;i<n;i++){cin>>a[i];b[i]=sum(a[i]);}for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if((b[j]<b[j+1])||((b[j]==b[j+1])&&(a[j]<a[j+1]))){t=b[j];b[j]=b[j+1];b[j+1]=t;t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n;i++){cout<<a[i]<<"";}return0;}第3题.内部元素之和输入一个整数矩阵,计算位于矩阵内部的元素之和。

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案

全国计算机等级考试二级c语言题库及答案全国计算机等级考试二级C语言题库及答案1. 以下关于C语言的叙述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持模块化程序设计答案:B2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. forC. returnD. void答案:D3. 若有定义:int a=3, b=4; 则表达式 a+b 的值是:A. 7B. 6C. 3.4D. 43答案:A4. 在C语言中,以下哪个选项不是合法的变量名?A. _sumB. sum_C. 2valueD. sum$答案:C5. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array[2,3];答案:A6. 若有定义:char c1='a', c2='b'; 则表达式 c1-c2 的值是:A. -1B. 1C. 97D. 98答案:A7. 在C语言中,以下哪个选项不是合法的字符串字面量?A. "Hello"B. 'Hello'C. "123"D. "C\"Language"答案:B8. 若有定义:int x=10; 则表达式 x++ 的结果是:A. 10B. 11C. 9D. 无法确定答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. pointer答案:B10. 若有定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式 a[2] 的值是:A. 3B. 4C. 5D. 无法确定答案:A11. 在C语言中,以下哪个选项不是合法的循环控制语句?A. forB. whileC. do-whileD. repeat答案:D12. 若有定义:float x=3.14; 则表达式 (int)x 的值是:A. 3B. 3.14C. 4D. 无法确定答案:A13. 在C语言中,以下哪个选项不是合法的函数参数类型?A. intB. floatC. doubleD. void答案:D14. 若有定义:int a=5, b=10; 则表达式 a%b 的值是:A. 5B. 0C. 1D. 无法确定答案:B15. 在C语言中,以下哪个选项不是合法的输入输出函数?A. printfB. scanfC. coutD. getchar答案:C16. 若有定义:int a=2, b=4; 则表达式 a&b 的值是:A. 0B. 2C. 4D. 6答案:B17. 在C语言中,以下哪个选项不是合法的逻辑运算符?A. &&B. ||C. !D. <答案:D18. 若有定义:int a=3; 则表达式 a<<2 的值是:A. 6B. 12C. 9D. 无法确定答案:B19. 在C语言中,以下哪个选项不是合法的文件操作函数?A. fopenB. fcloseC. removeD. delete答案:D20. 若有定义:int a=6; 则表达式 a==6 的值是:A. 1B. 0C. 6D. 无法确定答案:A。

c语言二级考试题及答案

c语言二级考试题及答案

c语言二级考试题及答案一、单项选择题(本大题共40小题,每小题2分,共80分)1. 在C语言中,下列哪个选项是正确的整型常量?A. 0.5B. 0x12C. 0x12.0D. 0x12L答案:B2. C语言中,下列哪个选项是正确的字符串字面量?A. "hello"B. 'hello'C. "hello'"D. 'hello"答案:A3. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C4. 下列哪个选项是C语言中的关键字?A. intB. integerC. realD. double答案:A5. 在C语言中,下列哪个选项是正确的二进制常量表示?A. 0x1BB. 0b1101C. 0B1101D. 0x1101答案:B6. C语言中,下列哪个选项是正确的浮点型常量表示?A. 3.14B. 3.14e2C. 3.14E-2D. 3.14f答案:C7. 在C语言中,下列哪个选项是正确的字符常量表示?A. 'a'B. "a"C. 'ab'D. '0x61'答案:A8. 下列哪个选项是C语言中合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A9. 在C语言中,下列哪个选项是正确的函数声明?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A10. 下列哪个选项是C语言中合法的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)();答案:A11. 在C语言中,下列哪个选项是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };答案:C12. 下列哪个选项是C语言中合法的枚举声明?A. enum {RED, GREEN, BLUE} color;B. enum color {RED, GREEN, BLUE};C. enum {RED, GREEN, BLUE};D. enum color {0, 1, 2};答案:B13. 在C语言中,下列哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI(3.14159)D. #define PI 3.14159;答案:A14. 下列哪个选项是C语言中合法的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A15. 在C语言中,下列哪个选项是正确的条件语句?A. if (a > b) { ... }B. if a > b { ... }C. if (a > b) then { ... }D. if a > b then { ... }答案:A16. 下列哪个选项是C语言中合法的循环语句?A. for (i = 0; i < n; i++) { ... }B. for i = 0; i < n; i++ { ... }C. for (i = 0; i < n; i++) { ... }D. for i = 0 to n { ... }答案:A17. 在C语言中,下列哪个选项是正确的switch语句?A. switch (a) { case 1: ...; case 2: ...; }B. switch (a) { case 1: ...; case 2: ...; default: ...; }C. switch (a) { case 1: ...; case 2: ...; break; }D. switch (a) { case 1: ...; case 2: ...; default: ...; }答案:D18. 下列哪个选项是C语言中合法的goto语句?A. goto label;B. goto 10;C. label: ...D. goto;答案:C19. 在C语言中,下列哪个选项是正确的函数调用?A. printf("%d", 10);B. scanf("%d", &a);C. printf("%d", a);D. scanf("%d", a);答案:B20. 下列哪个选项是C语言中合法的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, b) { return a + b; }C. int add(int a, int b) { return a + b; }D. int add(a, b) { return a + b; }答案:A21. 在C语言中,下列哪个选项是正确的递归函数调用?A. int factorial(int n) { return n * factorial(n - 1); }B. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }C. int factorial(int n) { return n * factorial(n + 1); }D. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }答案:B22. 下列哪个选项是C语言中合法的数组初始化?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3, 4};C. int a[5] = {1, 2, 3};D. int a[5] = {1, 2, 3, 4, 5, 6};答案:A23. 在C语言中,下列哪个选项是正确的字符串复制?A. strcpy(a, b);B. strcopy(a, b);C. copy(a, b);D. strcp(a, b);24. 下列哪个选项是C语言中合法的内存分配?A. int *p = (int *)malloc(sizeof(int) * 10);B. int *p = malloc(10 * sizeof(int));C. int *p = (int *)malloc(10);D. int *p = malloc(sizeof(int) * 10);答案:A25. 在C语言中,下列哪个选项是正确的内存释放?A. free(p);B. delete p;C. deallocate p;D. dispose p;答案:A26. 下列哪个选项是C语言中合法的指针运算?B. p--;C. p += 2;D. p = 2;答案:A27. 在C语言中,下列哪个选项是正确的结构体赋值?A. Point p1 = {1, 2};B. Point p1 = p2;C. Point p1 = {1, 2};D. Point p1 = {1, 2, 3};答案:B28. 下列哪个选项是C语言中合法的枚举值使用?A. color = RED;B. color = 0;C. color = "RED";D. color = 1;答案:A29. 在C语言中,下列哪个选项是正确的宏替换?A. #define SQUARE(x) x * xB. #define SQUARE(x) (x) * (x)C. #define SQUARE(x) x * xD. #define SQUARE(x) (x) * (x)答案:D30. 下列哪个选项是C语言中合法的文件操作?A. FILE *fp = fopen("file.txt", "r");B. FILE *fp = open("file.txt", "r");C. FILE *fp = fopen("file.txt", "w");D. FILE *fp = open("file.txt", "w");答案:A31. 在C语言中,下列哪个选项是正确的文件读取?A. fscanf(fp, "%d", &a);B. scanf(fp, "%d", &a);C. fscanf(fp, "%d", a);D. scanf(fp, "%d", a);答案:A32. 下列哪个选项是C语言中合法的文件写入?A. fprintf(fp, "%d", a);B. printf(fp, "%d", a);C. fprintf(fp, "%d", &a);D. printf(fp, "%d", &a);答案:A33. 在C语言中,下列哪个选项是正确的文件关闭?A. close(fp);B. fclose(fp);C. fclose(fp);D. close(fp);答案:B34. 下列哪个选项是C语言中合法的错误处理?A. if (fp == NULL) { perror("Error opening file"); exit(1); }B. if (fp == NULL) { printf("Error opening file"); exit(1); }C. if (fp == NULL) { perror("Error opening file"); return 1; }D. if (fp == NULL) { printf("Error opening file"); return 1; }答案:A35. 在C语言中,下列哪个选项是正确的位运算?A. a & b;B. a && b;D. a || b;答案:A36. 下列哪个选项是C语言中合法的逻辑运算?A. a && b;B. a || b;C. a & b;D. a | b;答案:A37. 在C语言中,下列哪个选项是正确的自增运算?A. a++;B. ++a;C. a += 1;D. a = a + 1;38. 下列哪个选项是C语言中合法的自减运算?A. a--;B. --a;C. a -= 1;D. a = a - 1;答案:A39. 在C语言中,下列哪个选项是正确的类型转换?A. (int)a;B. int(a);C. (int)(a);D. int a;答案:C40. 下列哪个选项是C语言中合法的sizeof运算?A. sizeof(a);B. sizeof int;C. sizeof(int);D. sizeof "string";答案:C二、程序填空题(本大题共2小题,每小题10分,共20分)1. 给定以下代码片段,请填写缺失的部分以实现计算并打印两个整数的和。

C语言程序设计第2阶段练习题 江南大学机考题库及答案

C语言程序设计第2阶段练习题 江南大学机考题库及答案

江南大学网络教育第二阶段练习题考试科目:《C语言程序设计》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 下述对C语言字符数组的描述中错误的是()。

(2 分)A. 字符数组可以存放字符串B. 字符数组的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D. 不可以用关系运算符对字符数组中的字符串进行比较2. 有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是()。

(2 分)A. 1,2,3B. 3,1,2C. 1,3,2D. 2,3,13. 有语句char str1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语句是()。

(2 分)A. str1={"Books"};B. strcpy(str1,str2);C. str1=str2;D. strcpy(str2,str1);4. 若有变量说明:char s,s1[20];执行语句:s="student";s1=s;正确的叙述是()。

(2 分)A. 二个语句都不正确B. s所指向的字符串和s1的值都是"student"C. 第一个语句正确,而第二个语句不正确D. 第二个语句正确,而第一个语句不正确5. C语言的编译系统对宏命令是()时候处理的。

计算机C语言二级机考题库及答案150题

计算机C语言二级机考题库及答案150题

1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。

例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!#include#define N 9int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i for(i=0;i<=N/2;i++){ k=i;for(j=i+1;jb[j]) k=j;if(k != i ){/**********found**********/t=b[i]; b[i]=___1___; b[k]=t;}}/**********found**********/mid=b[___2___];for(i=0; i/**********found**********/if(x[i] ___3___ mid) x[i]=mid;return mid;}main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i printf("\nThe mid data is: %d\n",fun(x));for(i=0; i printf("\n");}1、(1)b[k](2)N/2(3)<2、给定程序中,函数fun的功能是建立一个N×N的矩阵。

矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。

二级C语言100道经典选择题与答案

二级C语言100道经典选择题与答案

【1.1】以下不正确的C语言标识符是____。

A) intB) a_1_2C) ab1exeD) _x【1.2】以下是正确的C语言标识符是____。

A) #defineB) _123C) %dD) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。

A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line#pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。

A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type【1.5】下列不属于C语言关键字的是。

A) defaultB) registerC) enumD) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。

A) 32768B) 0C) 037D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。

A) -1B) 1C) -ffffD) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。

A) -1B) -32768C) 1D) 32768【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。

计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案计算机二级C语言考试通常包括选择题、填空题、简答题和编程题等几种类型。

以下是一些模拟试题及答案,供参考:# 一、选择题1. 下列哪个是C语言的关键字?- A. `int`- B. `float`- C. `double`- D. `string`答案:A2. C语言中,以下哪个不是合法的变量名?- A. `my_var`- B. `2variable`- C. `variable_name`- D. `variable`答案:B3. 在C语言中,哪个运算符用于求余数?- A. `%`- B. `/`- C. `*`- D. `+`答案:A4. 以下哪个语句用于结束C程序?- A. `return 0;`- B. `exit(0);`- C. `end;`- D. `void main()`答案:A5. 在C语言中,数组的索引是从哪个数字开始的?- A. 0- B. 1- C. -1- D. 随机数答案:A# 二、填空题1. 在C语言中,`printf`函数用于______。

答案:输出信息2. 定义一个整型变量`a`并初始化为10,应使用语句:`int a =______;`答案:103. C语言中,`for`循环的一般形式为:`for(初始化表达式; 条件表达式; 迭代表达式) ______;`答案:{循环体}4. 字符串在C语言中以______字符结尾。

答案:'\0'5. 使用`scanf`函数从键盘读取数据时,需要在格式字符串中使用______来指定变量的地址。

答案:&# 三、简答题1. 请简述C语言中函数的作用和基本结构。

答案:函数是C语言中实现代码复用的一种方式。

一个函数通常用于执行一个特定的任务。

基本结构包括函数原型声明和函数定义。

函数原型声明了函数的返回类型、名称和参数列表。

函数定义则包含了函数的实现细节,即函数体。

2. 解释C语言中指针的概念及其用途。

全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析一、选择题1. 以下哪个选项不是C语言的关键字?A. autoB. includeC. ifD. static答案:B解析:C语言中,auto、if和static都是关键字,而include不是关键字,它是预处理命令的一部分。

2. 在C语言中,下列哪个选项是非法的整型常量?A. 012B. 0x123C. 0X123D. 0123答案:D解析:C语言中,以0开头的数字表示八进制常量,以0x 或0X开头的数字表示十六进制常量。

选项A表示八进制常量,选项B和C表示十六进制常量,而选项D表示非法的常量。

3. 有以下程序段:```cint a = 5, b = 4;printf("%d\n", a/b);```输出结果是:A. 1B. 1.25C. 5D. 4答案:A解析:在C语言中,整数除法的结果仍然是整数。

因此,5除以4的结果为1。

4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A解析:在C语言中,malloc()函数用于动态分配内存。

calloc()函数也用于动态分配内存,但会初始化分配的内存空间。

alloc()和new()不是C语言中的标准函数。

二、填空题1. 在C语言中,若要定义一个指向整型的指针变量,应使用______。

答案:int解析:在C语言中,使用int 来定义一个指向整型的指针变量。

2. 有以下程序段:```cint a = 5, b = 3;printf("%d\n", a % b);```输出结果是______。

答案:2解析:在C语言中,%运算符表示求余运算。

因此,5除以3的余数为2。

3. 有以下程序段:```cint a = 5;printf("%d\n", sizeof(a));```输出结果是______。

二级c语言试题及答案

二级c语言试题及答案

二级c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,错误的是()。

A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言具有丰富的数据类型答案:B2. 在C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. let答案:C3. 下列选项中,哪个不是C语言中的运算符?()A. %B. &&C. ::D. +=答案:C4. C语言中,用于定义数组的关键字是()。

A. arrayB. listC. vectorD. int答案:D5. 下列关于C语言函数的叙述中,正确的是()。

A. 函数可以没有返回值B. 函数必须有返回值C. 函数的返回值类型不能为voidD. 函数的参数类型必须与返回值类型一致答案:A6. 在C语言中,用于定义结构体的关键字是()。

A. structB. classC. unionD. typedef答案:A7. C语言中,用于声明指针的符号是()。

A. &B. %C. *D. #答案:C8. 下列关于C语言文件操作的叙述中,错误的是()。

A. 文件操作需要包含头文件stdio.hB. 文件指针类型为FILE*C. 文件打开使用fopen函数D. 文件关闭使用fclose函数答案:A9. C语言中,用于实现循环的关键字是()。

A. loopB. repeatC. forD. do答案:C10. 在C语言中,用于定义枚举类型的关键字是()。

A. enumB. typedefC. unionD. struct答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义单精度浮点数的关键字是________。

答案:float2. C语言中,用于定义双精度浮点数的关键字是________。

答案:double3. C语言中,用于定义字符型变量的关键字是________。

c语言二级考试真题答案

c语言二级考试真题答案

c语言二级考试真题答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义 `int a[5] = {1, 2, 3, 4, 5};`,则以下哪个表达式的值不为5?A. a[4]B. a[5]C. *(a + 4)D. *(&a[0] + 4)答案:B3. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 若有定义 `float x = 3.14;`,则以下哪个表达式的值不为3.14?A. xB. (int)xC. (double)xD. (float)x答案:B5. 在C语言中,以下哪个运算符用于按位与操作?A. &&B. &C. ||D. ||答案:B6. 若有定义 `int a = 5;`,则以下哪个表达式的值不为5?A. a++B. a--C. ++aD. --a答案:D7. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A8. 若有定义 `char c = 'A';`,则以下哪个表达式的值不为65?A. cB. (int)cC. 'A'D. (char)65答案:C9. 在C语言中,以下哪个关键字用于声明一个无返回值的函数?A. voidB. intC. floatD. double答案:A10. 若有定义 `int a = 10;`,则以下哪个表达式的值不为10?A. aB. *&aC. &aD. *(&a)答案:C二、填空题(每题2分,共20分)1. 在C语言中,`sizeof`运算符用于获取__数据类型__或__变量__所占的字节数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、编写函数,实现对按从小到大排列的n个元素的有序数组a进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。

例:有序数组 a[10]={0,1,2,3,4,5,6,7,8,9}输入:2输出:2输入:10输出:-1#include <stdio.h>void main(){int fn(int a[],int n,int x);int a[10]={0,1,2,3,4,5,6,7,8,9},x;scanf("%d",&x);printf("%d\n",fn(a,10,x));}int fn(int a[],int n,int x){int l,r,mid,flag=-1;l=0;r=n-1;while(l<=r){mid=(l+r)/2;if(a[mid]==x){flag=mid;break;}if(a[mid]<x)l=mid+1;elser=mid-1;}return flag;}2、编写一个程序完成字符串拷贝的功能函数str_copy(a,b),可将字符数组a中的对应内容ascii码加1后拷贝到b中。

输入:abc输出:bcd#include <stdio.h>void str_copy(char a[],char b[]){int i;while(*a){*b++=(*a++)+1;}*b=0;}void main(){char str1[10],str2[10];scanf("%s",str1);str_copy(str1,str2);printf("%s\n",str2);}3、用选择排序完成对下列数据的排序操作:19,454,23,67,89,3467,1,56。

具体要求如下:(1)在主函数中通过对数组初始化的方式将该数列存在数组中,在子函数中完成排序操作。

(2)函数的返回类型必须定义成void类型。

(3)输出应在主函数中完成。

#include <stdio.h>void fn(int a[],int n){int i,j,k,t;for(i=0;i<n;i++){ k=i;for(j=i+1;j<n;j++)if(a[k]>a[j])k=j;if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}}void main(){int a[8]={19,454,23,67,89,3467,1,56},i;fn(a,8);for(i=0;i<8;i++)printf("%d,",a[i]);printf("\n");}4、编写一个函数atoi,该函数的作用是将一个整数字符串转换成一个整数。

函数定义的形式为int atoi(char *str),其中str是字符串的首地址。

函数的返回值为求出的整数。

如atoi(“123”) 的返回值为整数123。

、要求输入一个数字字符串和一个整数,将对应数字字符串转换为整数后计算和并输出。

例:输入:123 3输出:126#include <stdio.h>int atoi(char *str){int i=0,sum=0;while(str[i]!='\0'){sum=sum*10+str[i]-'0';i++;}return sum;}void main(){char str[10];int n;int s;scanf("%s%d",str,&n);s=atoi(str);printf("%d\n",s+n);}5、请编写一个函数fun,它的功能是:输入并计算n门课程的平均分,计算结果作为函数值返回。

输出时小数点后保留1位。

函数的首部为:double fun (double a[],int n)例:输入:597 77 85 64 81输出:80.8#include <stdio.h>double fun(double a[],int n){int i;double p,sum=0.0;for(i=0;i<n;i++)sum=sum+a[i];p=sum/n;return p;}void main(){int i,n;double a[20];scanf("%d",&n);for(i=0;i<n;i++)scanf("%lf",&a[i]);printf("%.1f\n",fun(a,n));}6、要求程序的功能是:从键盘输入n个数存入一个数组,然后输出该数组中的最小值及对应下标。

其中确定最小值的下标的操作在fun函数中实现。

例:输入:201 2 0 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19输出:0 2函数的首部为int fun(int list[],int size)#include <stdio.h>int fun(int list[],int size){int i,m;m=0;for(i=1;i<size;i++){if(list[m]>list[i])m=i;}return m;}void main(){int a[20],i,size;int n,min;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);min=fun(a,n);printf("%d %d",a[min],min);}7、编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat)。

例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirstString--SecondString函数的首部:void fun(char p1[],char p2[])#include <stdio.h>void fun(char p1[],char p2[]){int i=0,j=0;while(p1[i]!=0)i++;while(p2[j]!=0){p1[i]=p2[j];i++;j++;p1[i]=0;}p1[i]=0;}void main(){char p1[100];char p2[100];scanf("%s",&p1);scanf("%s",&p2);fun(p1,p2);printf("%s\n",p1);}8、在程序中定义N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(int a[][N]),函数的功能是:使数组右上半三角元素中的值全部置成0。

例如:a数组中的值为|1 9 7| |0 0 0|a= |2 3 8|,则返回主程序后a数组中的值应为 |2 0 0||4 5 6| |4 5 0|函数的首部:void fun(int a[][N])#define N 3#include <stdio.h>void fun(int a[][N]){int i,j;for(i=0;i<N;i++){for(j=i;j<N;j++)a[i][j]=0;}}void main(){int i,j,a[3][3];for(i=0;i<N;i++){for(j=0;j<N;j++)scanf("%d",&a[i][j]);}fun(a);for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%d ",a[i][j]);printf("\n");}}9、请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

例如,输入:17 5输出:19 23 29 31 37#include <stdio.h>#include <math.h>void fun(int m,int k,int xx[]){int i,t,j,q=0;for(t=m+1;;t++){j=sqrt(t);for(i=2;i<=j;i++)if(t%i==0)break;if(i>=j+1){xx[q]=t;q++;}if(q==k)break;}}void main(){int i,m,k,xx[10];scanf("%d%d",&m,&k);fun(m,k,xx);for(i=0;i<k;i++)printf("%d ",xx[i]);printf("\n");}10、写一个函数void copy (char *p , char str2[] , int m),从主函数接受一字符串,完成将此字符串从第m个字符开始的全部字符复制成为另一个字符串str2,并输出str2。

例:输入:abcdef3输出:cdef#include <stdio.h>void copy(char *p,char str2[],int m)int i;for(i=0;i<m-1&&*p!=0;i++)p++;while(*p){*str2++=*p++;}*str2=0;}void main(){char a[10],str2[10];int m;scanf("%s",&a);scanf("%d",&m);copy(a,str2,m);printf("%s\n",str2);}11、有一个已经排好序(升序)的数组,写一函数void sort ( int *p, int n,int num),实现插入一个数,要求按原来的规律将它插入数组中,并在主函数中输出插入数后的数组。

排好的数组规定为:int a[10]={1,3,19,28,65}输入:2输出:1,2,19,28,65#include <stdio.h>void sort(int *p,int n,int num){int *i,*j;for(i=p;i<p+n;i++){if(num>*i)continue;if(i==p+n){*i=num;break;}j=p+n;while(j>i){*(j)=*(j-1);j--;}*i=num;break;}void main(){int num,*p,a[10]={1,3,19,28,65};scanf("%d",&num);sort(a,5,num);for(p=a;p<=a+5;p++)printf("%d,",*p);printf("\n");}12、编写程序计算并输出3到n之间所有素数的平方根之和,n的值从键盘输入。

相关文档
最新文档