二级C语言笔试必过399题

合集下载

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

全国计算机等级考试二级C语言笔试试题及答案
常将有日思无日,莫待无时思有时。——《增广贤文》
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}

全国计算机等级考试二级c语言笔试试题

全国计算机等级考试二级c语言笔试试题

全国计算机等级考试二级c语言笔试试题全国计算机等级考试二级C语言笔试试题一、单项选择题(每题2分,共40分)1. C语言中,一个整型变量所占的基本存储单位是()。

A. 1个字节B. 2个字节C. 3个字节D. 4个字节2. 下列关于C语言函数的描述,错误的是()。

A. 函数可以返回一个结构体类型的值B. 函数可以没有返回值,也可以返回一个值C. C语言中,main函数可以没有返回值D. 函数的返回值类型必须与定义时的类型一致3. 在C语言中,用于定义字符串的标识符是()。

A. char *B. char[]C. stringD. text4. 下列关于C语言数组的描述,正确的是()。

A. 数组在定义时必须初始化B. 数组的元素可以是不同数据类型的C. 数组在定义后,其元素的个数不能改变D. 数组的元素个数可以是变量5. C语言中,表示逻辑“与”操作的运算符是()。

A. &&B. ||C. !D. &6. 下列关于C语言指针的描述,错误的是()。

A. 指针是一个变量,用于存储另一个变量的地址B. 指针的值是它所指向的变量的地址C. 指针变量可以重新赋值为任意地址D. 指针可以进行算术运算7. C语言中,用于文件操作的库函数是()。

A. math.hB. stdio.hC. string.hD. conio.h8. 下列关于C语言结构体的描述,错误的是()。

A. 结构体是一种构造数据类型B. 结构体可以包含不同类型的成员C. 结构体的所有成员必须同时初始化D. 结构体可以定义为函数的参数9. C语言中,表示关系“小于等于”的运算符是()。

A. <B. >C. <=D. >=10. 在C语言中,用于实现循环结构的语句有()。

A. forB. whileC. do-whileD. 所有选项二、填空题(每空3分,共30分)11. C语言中,一个浮点型变量所占的存储空间通常是________字节。

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。

A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。

根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

所以C文件就是一个字节流或一个二进制流。

2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。

A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。

3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。

c二级考试试题

c二级考试试题

c二级考试试题C语言二级考试试题涵盖了C语言的基础知识、数据类型、运算符、控制结构、数组、函数、指针、结构体、文件操作等多个方面。

以下是一套模拟的C语言二级考试试题,供参考:一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. 在C语言中,以下哪个运算符用于求余数?A. %B. /C. *D. --3. 下列哪个是C语言中的逻辑运算符?A. &&B. ||C. <D. >4. 以下哪个语句是正确的C语言循环语句?A. do-whileB. while-doC. do-doD. while-while5. 在C语言中,数组的默认初始化方式是什么?A. 0B. 1C. -1D. 随机数二、填空题(每空2分,共20分)1. 在C语言中,基本数据类型包括整型(____)、浮点型(____)、字符型(____)等。

2. 一个C程序的执行从(____)函数开始。

3. 一个C语言的函数定义包括返回类型、(____)和函数体。

4. 指针变量的值是(____)的地址。

5. 结构体是一种(____)类型的数据类型。

三、简答题(每题10分,共20分)1. 请简述C语言中数组和指针的区别和联系。

2. 描述一下C语言中函数的调用过程。

四、编程题(每题15分,共40分)1. 编写一个C语言程序,实现输入10个整数,找出其中的最大值和最小值,并输出。

```c#include <stdio.h>int main() {int numbers[10], max, min, i;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}max = min = numbers[0];for (i = 1; i < 10; i++) {if (numbers[i] > max) {max = numbers[i];}if (numbers[i] < min) {min = numbers[i];}}printf("最大值是:%d\n", max);printf("最小值是:%d\n", min);return 0;}```2. 编写一个C语言程序,实现字符串的反转。

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

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

国家二级计算机考试c语言试题及答案国家二级计算机考试C语言试题及答案一、选择题(本大题共10小题,每小题2分,共20分。

每小题只有一个正确答案。

)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable2!D. _variable2答案:D3. C语言中,用于表示逻辑“与”的运算符是?A. &&B. ||C. !D. =答案:A4. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 下列哪个选项是正确的C语言注释?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3};答案:A7. C语言中,用于计算两个整数相加的函数是?A. strcatB. strcmpC. strcpyD. sum答案:D(注:sum不是C语言标准库函数,此处假设为自定义函数)8. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 1.23e5C. 123.45D. All of the above答案:D9. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A10. 在C语言中,哪个关键字用于声明一个指针?A. intB. charC. floatD. *答案:D二、填空题(本大题共5小题,每小题2分,共10分。

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语言二级考试题库

c语言二级考试题库

c语言二级考试题库第一篇c语言二级考试题库:2021计算机二级《C语言》考试题及答案一、选择题(每小题1分。

共40分)(1)程序流程图中带有箭头的线段表示的是( )。

A.图元关系B.数据流C.掌握流D.调用关系(2)结构化程序设计的基本原则不包括( )。

A.多态性B.自顶向下C.模块化D.逐步求精(3)软件设计中模块划分应遵循的准则是( )。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试方案(5)算法的有穷性是指( )。

A.算法程序的运行时问是有限的。

B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏状况下,比较次数不是n(n一1)/2的排序方法是( )。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序(7)下列关于栈的叙述正确的是( )。

A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据(8)在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。

A.需求分析阶段B.概念设计阶段C.规律设计阶段D.物理设计阶段(9)有三个关系R、s和T如下:由关系R和s通过运算得到关系T,则所使用的运算为( )。

A.并B.自然连接C.笛卡尔积D.交(10)设有表示同学选课的三张表,同学s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成果),则表sc 的关键字(键或码)为( )。

A.课号,成果B.学号,成果C.学号,课号D.学号,姓名,成果(11)以下叙述中错误的是( )。

A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中D.c语言源程序经编译后生成后缀为.obj的目标程序(12)以下选项中,合法的一组c语言数值常量是( )。

计算机二级《C语言程序设计》笔试试题及答案

计算机二级《C语言程序设计》笔试试题及答案

计算机二级《C语言程序设计》笔试试题及答案计算机二级《C语言程序设计》笔试试题及答案单项选择题(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#includemain(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5下载文档。

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

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

计算机二级c语言100套试题及答案1. 题目:编写一个C语言程序,计算并输出1到100之间所有偶数的和。

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

```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```3. 题目:编写一个C语言程序,计算并输出100以内最大的10个质数。

```c#include <stdio.h>#include <stdbool.h>bool isPrime(int num) {if (num <= 1) return false;for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int count = 0;int primes[10];for (int i = 2; i < 100 && count < 10; i++) { if (isPrime(i)) {primes[count++] = i;}}printf("100以内最大的10个质数是:");for (int i = 0; i < count; i++) {printf("%d ", primes[i]);}printf("\n");return 0;}```4. 题目:编写一个C语言程序,实现两个整数的交换。

c语言二级考试试题与答案doc

c语言二级考试试题与答案doc

c语言二级考试试题与答案doc一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:B2. 若有定义int a=5;,则表达式a++的值是多少?A. 4B. 5C. 6D. 0答案:B3. C语言中,用于表示逻辑“与”操作的运算符是什么?A. &&B. ||C. !D. &答案:A4. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. coutD. getchar()答案:C5. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. 若有定义float x=3.14;,则表达式sizeof(x)的值是多少?A. 2B. 4C. 8D. 10答案:B7. C语言中,哪个关键字用于声明一个指针变量?A. *B. &C. %D. #答案:A8. 下列哪个选项是正确的C语言数组声明?A. int a[];B. int b[5];C. int c[5]={0};D. All of the above答案:D9. 在C语言中,哪个关键字用于声明一个无限循环?A. forB. whileC. do...whileD. switch答案:B10. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10,可以使用语句:________。

答案:int a = 10;2. 若有定义int a=5;,则执行语句a=a+1;后,变量a的值是________。

答案:63. 在C语言中,使用________运算符可以实现逻辑“或”操作。

计算机等级考试二级C语言超级经典400道题目(5)

计算机等级考试二级C语言超级经典400道题目(5)

计算机等级考试二级C语言超级经典400道题目(5)201、以下程序的输出的结果是 int x=3; main() { int i; for (i=1;i、C、2202、以下程序的输出结果是#include main() { int i=0,a=0; while(i、B、2203、以下程序的输出结果是 int f() { static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0; for(i=0;i、D、2204、请读程序: static int a[]={1,3,5,7,9}; int y,x,*p; y=1; p=&a[1]; for(x=0;x、D、2205、下面函数的功能是 A) 求字符串的长度 B) 比较两个字符串的大小C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面 int funl(char * x) { char * y=x; while(*y++); return(y-x-1);}、A、2206、下面函数的功能是sss(s, t) char *s, *t; { while((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中、B、2207、下面能正确进行字符串赋值操作的语句是 A char s[5]={"ABCDE"}; B char s[5] ={'a','b' ,'c','d',''e'}; C char *s;s="ABCDEF"' D char *s; scasnf("%s",s);、C、2208、下述对C语言字符数组的描术中错误的是 A) 字符数组可以存放字符串B) 字符数组中的字符串可以整体输入、输出C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D) 不可以用关系运算符对字符数组中的字符串进行比较、C、2209、下面的程序 A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环main() { int x=3; do { printf("%d\n",X-=2); }while(!(--x));}、B、2210、下面的程序执行后,文件testt、t中的内容是#include void fun(char *fname、,char *st) { FILE *myf; int i;myf=fopen(fname,"w" ); for(i=0;i、A、2211、下面各语句行中,能正是行赋字符串操作的语句行是A)char st[4][5]={“ABCDE”}; B)char s[5]={'A','B','C','D','E'};C)char *s;s=“ABCDE”; D)char *s;scanf(“%S”,S);、C、2212、下面程序的输出是____ int w=3; main() { int w=10; printf("%d\n",fun(5)*w); } fun(int k) { if(k==0) return w; return(fun(k-1)*k); } A)360 B)3600 C)1080 D)1200、B、2 213、下面程序的输出是____ main() { char *a="12134211"; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); } A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8、C、2 214、下面程序的输出是main() { int x=3,y=6,a=0; while(x++!=(y+=o1)) { a+o=1; if(y #include main() { char ss[10]="12345"; strcat(ss,"6789"); gets(ss);printf("%s\n",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789、D、2215、下面程序的输出是 A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 15 main() { enum team {my,your=4,his,her=his+10}; printf("%d %d %d %d\n",my,your,his,her);}、C、2216、下面程序的输出是 A) 0 B) 1 C) 3 D) 不确定的值 main() { int x=10,y=3; printf("%d\n",y=x/y);}、C、2217、下面程序的输出是 A) -1 B) 0 C) 1 D) 不确定的值 main() { int x=100, a=10, b=20, ok1=5, ok2=0; if(a、A、2218、下面程序的输出是A) 1 B) 2 C) 7 D) 10 int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); } main() { int a=7, b=5; printf("%d\n",fun2(a,b)/m);}、B、2219、下面程序的输出是A) 100 B) 160 C) 120 D) 64 main() { char x=040; printf("%d\n",x=x<<1);}、D、2220、下面程序的输出是 A) 17 B) 18 C) 23 D) 24 main() { intx=023; printf(%d\n",--x);}、B、2221、下面程序的输出是A) 23 B) 26 C) 33 D) 36 int aa[3][3]={{2},{4},{6}}; main() { int i, * p=&aa[0][0]; for(i=0; i、A、2 222、下面程序的输出是A) 3 B) 4 C) 1 D) 2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}、A、2 223、下面程序的输出是 A) 3 B) 4 C) 6 D) 9 fun3(int x) static int a=3; a+=x; return(a);} main() { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d\n",n);}、C、2224、下面程序的输出是 A) 60 B) 68 C) 99 D) 108 main() { int a[3][4]={ 1,3,5,7,9,11,13,15,17,19,21,23}; int ( *p)[4]=a,i,j,k=0; for(i=0; i、A、2225、下面程序的输出是 A) 741 B) 852 C) 963 D) 875421 main() { int y=9; for( ; y>0; y--) { if(y%3==0) { printf("%d", --y);continue;} }、 }、B、2226、下面程序的输出是 A) ABCD B) A C) D D) ABCD BCD B C ABC CD C B AB D D A A char s[]="ABCD"; main() { char *p; for(p=s; p、A、2238、请读程序: int x=10; int y=x++; printf("%d,%d",(x++,y),y++); 则上面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11、A、2239、下列程序的运行结果是A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d #include main() { int a=2,c=5; printf("a=%d,b=%d\n",a,c); }、B、2240、下列程序的输出结果是main( ) { char ch[2][5]={"6934,"8254"},*p[2]; int i,j,s=0; for(i=0;i'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); A) 6385 B) 69825 C) 63825 D) 693825、A、2 241、请读程序: main( ) {printf("%d",null);} 则上面程序的输出结果是____ A:0 B:变量无定义 C:-1 D:1、B、2242、设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为 A) 出错 B) 42 C) 48 D) 54、C、2243、设有以下函数: f ( int a) { int b=0; static int c = 3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是 main() { int a = 2, i; for(i=0;i、A、2244、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A) 10,3 B) 9、3 C) 9、2 D)10、2、D、2245、设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A) 120 B) 110 C) 100 D) 90、B、2246、设有如下的函数 ggg(x) float x; { printf("\n%d",x*x);} 则函数的类型 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定、C、2247、设有static char str[ ]="Beijing"; 则执行printf("%d\n", strlen(strcpy(str,"China"))); 后的输出结果为 A) 5 B) 7 C) 12 D) 14、A、2248、设 int x=1, y=1; 表达式(!x||y--)的值是 A) 0 B) 1 C) 2 D) -1、B、2249、若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是 A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]、D、2250、若有以下说明: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]、D、2。

全国计算机二级C语言程序设计题-((-100%全中必过)

全国计算机二级C语言程序设计题-((-100%全中必过)

目录题目一“回文”字符串 (3)题目二迭代法求给定多项式的值 (4)题目三迭代法求给定方程的根 (4)题目四二维数组三角元素操作1 (5)题目四二维数组三角元素操作2 (6)题目四二维数组三角元素操作3 (7)题目五二维数组元素求最值 (8)题目六二维数组周边元素1 (8)题目六二维数组周边元素2 (9)题目七二维数组转一维数组1 (10)题目七二维数组转一维数组2 (11)题目七二维数组转一维数组3 (12)题目七二维数组转一维数组4 (13)题目八结构体数组排序1 (14)题目八结构体数组排序2 (14)题目八结构体数组排序3 (15)题目八结构体数组排序4 (16)题目九结构体数组求最值1 (17)题目九结构体数组求最值2 (18)题目九结构体数组求最值3 (18)题目九结构体数组求最值4 (19)题目十结构体数组筛选 (19)题目十一结构体数组字符串比较 (20)题目十二矩阵操作1 (21)题目十二矩阵操作2 (22)题目十三类似素数判断1 (23)题目十三类似素数判断2 (23)题目十四累加累乘求和1 (23)题目十四累加累乘求和2 (24)题目十四累加累乘求和3 (24)题目十四累加累乘求和4 (25)题目十四累加累乘求和5 (25)题目十四累加累乘求和6 (26)题目十四累加累乘求和7 (27)题目十四累加累乘求和8 (27)题目十四累加累乘求和9 (28)题目十四累加累乘求和10 (28)题目十四累加累乘求和11 (29)题目十四累加累乘求和12 (29)题目十四累加累乘求和13 (30)题目十四累加累乘求和14 (30)题目十四累加累乘求和15 (31)题目十四累加累乘求和16 (31)题目十五链表2 (33)题目十六删除整数位某数位 (34)题目十七删除字符串中指定字符1 (34)题目十七删除字符串中指定字符2 (35)题目十七删除字符串中指定字符3 (35)题目十七删除字符串中指定字符4 (36)题目十七删除字符串中指定字符5 (36)题目十七删除字符串中指定字符6 (37)题目十七删除字符串中指定字符7 (37)题目十七删除字符串中指定字符8 (38)题目十七删除字符串中指定字符9 (38)题目十七删除字符串中指定字符10 (39)题目十七删除字符串中指定字符11 (39)题目十七删除字符串中指定字符12 (40)题目十七删除字符串中指定字符13 (41)题目十七删除字符串中指定字符14 (41)题目十七删除字符串中指定字符15 (42)题目十七删除字符串中指定字符16 (43)题目十七删除字符串中指定字符17 (43)题目十七删除字符串中指定字符18 (44)题目十八数字字符串转整数1 (45)题目十八数字字符串转整数2 (45)题目十九素数判定1 (46)题目十九素数判定2 (46)题目十九素数判定3 (47)题目二十统计问题 (48)题目二十一小数位操作 (48)题目二十二一维数组或字符串排序1 (49)题目二十二一维数组或字符串排序2 (50)题目二十二一维数组元素的筛选1 (50)题目二十二一维数组元素的筛选2 (51)题目二十二一维数组元素的筛选3 (51)题目二十二一维数组元素的筛选4 (52)题目二十二一维数组元素的筛选5 (52)题目二十二一维数组元素的筛选6 (53)题目二十二一维数组元素的筛选7 (54)题目二十二一维数组元素的筛选8 (54)题目二十二一维数组元素的筛选9 (55)题目二十三一维数组元素筛选 (55)题目二十五一维数组最值求解1 (56)题目二十五一维数组最值求解2 (57)题目二十五一维数组最值求解3 (57)题目二十六移动问题1 (58)题目二十七整数合并1 (59)题目二十七整数合并2 (59)题目二十七整数合并3 (60)题目二十七整数合并4 (60)题目二十七整数合并5 (60)题目二十七整数合并6 (61)题目二十七整数合并7 (61)题目二十七整数合并8 (62)题目二十八字符串长度比较1 (62)题目二十八字符串长度比较2 (62)题目二十九字符串的逆置 (63)题目三十字符串计数 (64)题目三十一字符串连接1 (64)题目三十一字符串连接2 (65)题目三十一字符串连接3 (66)题目三十二字符串中指定字符查找 (66)题目三十三字母大小的判断及转换 (67)题目一“回文”字符串3.请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。

二级C语言笔试-396

二级C语言笔试-396

二级C语言笔试-396(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.下列描述中正确的是A) 算法是指对解题方案准确而完整的描述B) 算法的有穷性是指算法程序的长度是有限的C) 算法是否有效与拥有的情报无关D) 算法的基本特征有可行性、确定性和有穷性(分数:1.00)A. √B.C.D.解析:[解析] 算法是指对解题方案准确而完整的描述。

算法具有4个特征:可行性、确定性、有穷性和拥有足够的情报。

有穷性指算法必须在有限时间内做完,即算法必须能在执行有限个步骤之后终止。

当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。

2.下列数据结构中属于非线性结构的是A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C. √D.解析:[解析] 线性结构满足两个条件:有且只有一个根结点;每个结点最多只有一个前件,也最多只有一个后件。

栈、队列、线性表都属于线性结构,而二叉树是一种非线性结构,因为除叶子结点外,每个结点都有两个后件,不满足线性结构的条件。

3.4个元素A、B、C、D依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是C(栈顶)、B、A(栈底),则不可能的出栈顺序是A) D、C、B、A B) C、B、D、AC) C、A、D、B D) C、D、B、A(分数:1.00)A.B.C. √D.解析:[解析] 栈的特点是先进后出,所以后入栈的最先出栈。

在栈的状态是C(栈顶)、B、A(栈底)时,D 未入栈,栈顶元素可以出栈,但A不可能比B先出栈,所以选项C)错误。

4.下列叙述中正确的是A) 顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间(分数:1.00)A. √B.C.D.解析:[解析] 顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。

历年二级C语言笔试真题及答案

历年二级C语言笔试真题及答案

1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B)栈C)队列D)二叉树3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合6)下列选项中不属于结构化程序设计原则的是A) 可封装B) 自顶向下C) 模块化D) 逐步求精7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_D)unsigned13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3C)4 D)515)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)1016)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5 C)7 D)919)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1; else k=0;20)有以下程序#include <stdio.h>main(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);} 程序运行后的输出结果是A)0 B)2 C)3 D)521)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);} 程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 222)有以下定义语句,编译时会出现编译错误的是A)char a=’a’B)cha r a=’\n’;C)char a=’aa’; D)char a=’\x2d’;23)有以下程序#include <stdio.h>main(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69C)E,D D)输出无定值24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);} 程序运行后的输出结果是A)32 B)12 C)21D)2225)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;} 造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);} 程序运行后的输出结果是A)1,2,1, B)1,2,2,1C)2,1,2, D)2,1,1,227)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]28)有以下程序#include <stdio.h>#include<string.h>main(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);} 程序运行后的输出结果是A)9,One*World B)9,One*Dream C)10,One*Dream D)10,One*World29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4 B)2 0 5 0 C)3 0 4 0D)0 3 0 430)有以下程序#include <stdio.h>#include<string.h>main(){ char a[10]=”abcd”;print f(“%d,%d\n”,strlen(a),sizeof(a);} 程序运行后的输出结果是A)7,4 B)4,10C)8,8 D)10,1031)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’33)设有以下函数void fun(int n,char * s) {……} 则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun; C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;(34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;} 程序运行以后的输出结果是A)7 B)8C)9 D)1035)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);} 程序运行后的输出结果是A)10,64B)10,10 C)64,10 D)64,6436)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a; B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str; B)scanf(“%s”,c);C)c=getchar(); D)*c=”string”;38)有以下程序#include <stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct Aa={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1001,ZhangDa,1202.0 C)1001,ChangRong,1098.0 D)1001,ChangRong,1202.039)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16 B)8 C)4D)240)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】14个结点。

c语言二级考试题及答案

c语言二级考试题及答案

c语言二级考试题及答案### C语言二级考试题及答案#### 单项选择题1. 题目:以下哪个选项是C语言中合法的变量名?- A. 2variable- B. variable-name- C. $variable- D. variable_name答案:B2. 题目:C语言中,以下哪个选项是正确的字符串字面量? - A. "Hello, World!"- B. 'Hello, World!'- C. "Hello World"- D. 'Hello World'答案:A3. 题目:在C语言中,以下哪个选项是正确的整型常量? - A. 0x1A- B. 1.2E3- C. 0123- D. 0b1010答案:A#### 填空题1. 题目:在C语言中,以下代码段的输出结果是____。

```cint a = 5;printf("%d", a++);```答案:52. 题目:以下代码段中,变量`b`的值是____。

```cint a = 10, b;b = a % 3;```答案:13. 题目:以下代码段中,变量`c`的值是____。

```cfloat a = 2.5, b = 4.5;int c = a + b;```答案:7#### 编程题1. 题目:编写一个C语言程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("Sum of the first 10 terms: %f\n", sum); return 0;}```2. 题目:编写一个C语言程序,实现两个整数的交换。

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

二级C语言笔试400题1、C语言程序的基本单位是(C)A) 程序行 B) 语句 C) 函数D) 字符、2、C语言程序的三种基本结构是(A) A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、3、C语言规定,程序中各函数之间 (A)A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用4、C语言中可处理的文件类型是(B) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件5、C语言可执行程序的开始执行点是(C ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数6、C语言提供的合法的数据类型关键B) A字是()double B) short C) integer D) char7、C语言中,运算对象必须是整型数的运算符是(A)A) % B) \C) %和\ D) * *8、C语言中函数返回值的类型是由( D)决定A) return语句中的表达式类型 B) 调用函数的主调函数类型 C)调用函数时临时D)定义函数时所指定的函数类型9、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(D)A、该数组的长度。

B、该数组的元素个数。

C、该数组中各元素的值。

D、该数组的首地址。

10、C语言中数组下标的下限是(B) A、1 B、0 C、视具体情况D、无固定下限11、C语言中提供的合法关键字是(D)A、swith B、cher C、caseD、default12、C语言中文件的存取方式是(C) A、顺序存取 B、随机存取C、顺序存取、随机存取均可D、顺序存取、随机存取均不可13、C语言中最简单的数据类型包括(B) A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型14、sizeof(float)是(C ) A) 一种函数调用 B) 一个不合法的表示形式 C) 一个整型表达式 D) 一个浮点表达式15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);16、表达式:10!=9的值是(D) A) true B) 非零值 C) 0 D)17、表示关系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)18、程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是(B)A) 65536 B) 0 C) 有语法错误,无输出结果 D) -119、当调用函数时,实参是一个数组名,则向函数传送的是(B)A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址D) 数组每个元素中的值20、对嵌套子程序调用说法正确的是(C) A、外层子程序可以调用所有的内层子程序 B、内层了程序只可以调用包含本身的外层子程序,不可以隔层调用 C、外分程序必须能完全套住内分程序 D、以上说法均不正确21、对于基类型相同的两个指针变量之间,不能进行的运算是(C)A)< B)= C)+ D)-22、合法的C语言中,合法的长整型常数是 (A)A) '\t' B) "A"C) 65 D) A23、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(D) A) 3 B) 6 C) 10 D) 2024、假定有以下变量定义: int k=7 ,x=12; 则能使值为3的表达式是(D)A x%=(k%=5)B x%=(k-k%5)C x%=k-k%5D (x%=k)-(k%=5)25、请读程序片段(字符串内没有空格): printf("%d\n",strlen("ATS\n012\1\\"));的输出结果是(C)A) 11 B) 10 C) 9 D) 826、请选出合法的C语言赋值语句(B)A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);27、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a 后,a的值是(C) A) -3 B) 9 C) -12 D) 628、若int类型占两个字节,则以下语句输出为(D) int k=-1; printf("%d,u%\n",k,k);A、-1,-1B、-1,65536C、-1,32768D、-1,6553529、若变量a是int类型,并执行了语句:a=‘A'+1、6;,则正确的叙述是(D)A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符‘A’的ASCII值加上130、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10、0,b赋予22、0,c赋予33、0,不正确的输入形式是 (B) A) 10 B) 10、0,22、0,33、0 22 33 C) 10、0 D) 10 22 22、0 33、0 3331、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(B) A)a<>0 B)!a C)a=0 D)a 32、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C) A)1 B)2 C)2、0 D)2、533、若有定义:int a=8,b=5,c;,执行语句c=a/b+0、4;后,c的值为(B) A) 1、4 B) 1 C) 2、0 D) 234、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 (D)A)scanf("x=%dy+%d",&x,&y);a=getchar();b=getchar();c=getchar();B)scanf("%d%d",&x,&y);a=getchar();b=getchar( );c=getchar();C)scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);D)s canf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c); 35、若有定义和语句: char s[10]:s="abcd";printf("%s\n",s); 则结果是(D)(以下u代表空格)A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过36、若有以下程序段, int c1=1,c2=2,c3; c3=1、0/c2*c1; 则执行后,c3中的值是(A) A) 0 B) 0、5 C) 1 D) 237、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为(D)A) float B) int C) char D) double 38、若有以下定义和语句char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是(B)A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定39、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是(A)A)3 B)4 C)5 D)640、若执行下面的程序时从键盘上输入3和4,则输出是(B)A) 14 B) 16 C) 18 D) 20 main( ) { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a41、若执行下面的程序时从键盘上输入5,则输出是(B) A) 7 B) 6 C) 5 D) 4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);}42、若执行以下程序时从键盘上输入9,则输出结果是(B)A)11B)10 C) 9 D) 8 main( ) { int n; scanf("%d",&n); if(n++43、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为(C)A) 0 B) 1 C) 2 D) 344、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 (D)A) 552 B) 264 C) 144 D) -26445、设 int b=2;表达式(b>>2)/(b>>1)的值是(A) A) 0 B) 2 C) 4 D) 846、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是________ A)'a'&&'b' B)a<=bC)a||b+c&&b-c D)!((a47、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 (C)A 4 B 16 C 32 D 5248、设x=3,y=-4,z=6,写出表达式的结果(B)!(x>y)+(y!=z)||(x+y)&&(y-z) A、0 B、1 C、-1 D、649、设x和y均为int 型变量,则以下语句:x+=y;y=x-y;y=x-y;x-=y;的功能是 (D)A、把x 和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值50、设有 int x=11; 则表达式 (x++ * 1/3) 的值是(A) A) 3B) 4 C) 11 D) 1251、设有如下的变量定义: int i =8,k ,a,b ; unsigned long w=5; double x=1,42,y=5、2; 则以下符合C语言语法的表达式是(A) A、 a+=a-=(b=4)*(a=3) B、 x%(-3); C、 a=a*3=2 D、y=float(i)52、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下就法中正确的是(D)A) aa数组成元素的值分别是"abcd"和ABCD" B) aa是指针变量,它指向含有两个数组元素的字符型一维数组 C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D) aa数组的两个元素中各自存放了字符'a'和'A'的地址53、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是(D) A) 1 B) 0 C) 4 D) 354、设有数组定义: char array [ ]="China"; 则数组 array 所占的空间为 (C)A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节55、设有说明语句:char a='\72';则变量a (A)A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法56、设有以下语句:int x=03,y=02,z=01;那么语句printf("%d",x|y&~Z)的执行结果(C) (A) 1 (B) 2 (C) 3 (D) 057、下列if语句中,不正确的是(C)A、if(x>y);B、if(x==y) x+=y; C、if(x!=y) scanf("%d",&x) else x=1; D、if(x 58、下列变量定义中合法的是(A)A)short _a=1-、le-1;B)double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;59、下列标识符中不合法的是(D)A、s_name B、_e C、fox D、3DS60、下列不正确的转义字符是(C) A) '\\' B) '\" C) '074' D) '\0'61、请读程序: main(){ int a=1,b=2; printf("%d\n",a=a+1,a+6,b+2);}则上面程序的输出结果是(A)A、2B、3C、4D、162、请读程序: int i=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf("i=%d,j=%d,a=d%\n",i,j,a); 则上面程序的输出结果是(B)A、i=0,j=0,a=6 B、i=1,j=0,a=7 C、i=1,j=1,a=6 D、i=1,j=1,a=763、下列程序段的输出结果为(A) int y=1; while(y--); printf("y=%d\n",y); A、y=-1B、y=0C、死循环D、y=9 64、下列程序执行后的输出结果是(B) A) 3 B) 6 C) 9 D)随机数 main(){ int a[3][3],*p,i;p=&a[0][0];for(i=p; i 65、下列程序执行后的输出结果是 (A)A) G B) H C) i D) J main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }66、下列程序执行后的输出结果是(小数点后只写一位)(A)A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D)6 6 6、7 6、0 main() { double d; float f; ling l; int i; i=f=1=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }67、下列可作为C语言赋值语句的是 (C)A)x=3,y=5 B)a=b=6C)i--; D)y=int(x);68、下列描述中不正确的是(C) A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值69、下列说法中正确的是(B) A、在switch语句中一定要使用break语句 B、在switch语句中不一定要使用break语句 C、break语句是switch语句的一部分 D、break只能用于switch 语句中70、下列运算符其优先级最高的是(C) A、|| B、&& C、+ D、=71、下面的DO循环中,一共循环(D)次。

相关文档
最新文档