全国计算机等级考试二级C语言真题题库

合集下载

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

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

计算机二级c语言操作试题及答案一、单项选择题(每题1分,共10分)1. C语言中,用于定义变量的关键字是:A. varB. defineC. intD. type答案:C2. 下列选项中,不属于C语言中的基本数据类型是:A. intB. charC. floatD. string答案:D3. 在C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. ==答案:A4. 以下哪个选项是正确的C语言函数定义?A. int function(int x, int y) { return x + y; }B. int function(int x, int y) { return x - y; }C. int function(int x, int y) { return x * y; }D. All of the above5. 在C语言中,用于从标准输入读取一个字符的函数是:A. getchar()B. getc()C. scanf("%c", &c)D. All of the above答案:D6. 下列哪个选项是C语言中的合法常量?A. 100B. 1.23C. 'a'D. All of the above答案:D7. 在C语言中,用于声明一个指针变量的关键字是:A. ptrB. pointerC. int*D. var答案:C8. 下列哪个选项是C语言中的合法字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\nWorld"D. All of the above答案:A9. 在C语言中,用于计算数组中元素个数的运算符是:B. countofC. lengthofD. All of the above答案:A10. 下列哪个选项是C语言中的合法注释?A. // This is a single line commentB. /* This is a multi-line comment */C. /* This is a multi-line commentD. All of the above答案:A二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量的语句是:________。

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

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

二级计算机技能考试c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。

A. varB. letC. intD. define答案:C2. 下列哪个选项是C语言中的合法标识符?()A. 2variableB. variable2C. _variableD. $variable答案:C3. 在C语言中,用于执行条件判断的关键字是()。

A. ifB. elseC. switchD. case答案:A4. C语言中,用于定义一个函数的关键字是()。

A. functionB. defC. voidD. int答案:C5. 在C语言中,用于表示逻辑“与”操作的符号是()。

A. &&B. ||C. =D. ==答案:A6. 下列哪个选项是C语言中的合法整型常量?()A. 100B. 0x1AC. 1.5E+2D. 0b1010答案:B7. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A8. C语言中,用于表示逻辑“或”操作的符号是()。

A. &&B. ||C. =D. ==答案:B9. 在C语言中,用于定义一个枚举类型的关键字是()。

A. enumB. unionC. structD. typedef答案:A10. C语言中,用于定义一个联合体的关键字是()。

A. structB. unionC. enumD. typedef答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。

答案:int2. C语言中,________关键字用于声明一个指针。

答案:*3. 使用________函数可以输出字符串到控制台。

答案:printf4. C语言中,________关键字用于声明一个函数。

答案:void5. 在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`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。

全国计算机二级(C语言)等级考试题库(完整版)

全国计算机二级(C语言)等级考试题库(完整版)

1、2、3、4、5、6、78910111213【参考答案】long fun ( char *p){long n=0;int flag=1;if(*p=='-') /*负数时置flag为-1*/ {p++;flag= -1;}else if(*p=='+') /*正数时置flag为1*/p++;while(*p!='\0'){n=n*10+*p-'0'; /*将字符串转成相应的整数*/p++;}return n*flag;}1415161718192021222324252627282930313233343536【参考答案】void fun(int tt[M][N],int pp[N]){int i,j,max;for(j=0;j<N;j++){max=tt[0][j]; /*假设各列中的第一个元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max) /*如果各列中的元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/max=tt[i][j];pp[j]=max; /*将各列的最大值依次放入pp数组中*/}}37【参考答案】unsigned fun(unsigned w){int n=1,j,s=1;unsigned t;t=w;/*首先确定w的位数,用变量n保存*/while(t>=10){/*每次循环使s的位数减1,同时n加1*/t=t/10;n++;}/*求10的n-1次方*/for(j=1;j<n;j++)s=s*10;/*用w对10的n-1次方求余即可得到所求*/return w%s;}38【参考答案】void fun(char*s){char ch;int i,m,n;i=0;m=n=strlen(s)-1;/*将第i个和倒数第i个数互换,但循环的次数为数组长度的一半*/while(i<(n+1)/2){/*使用中间变量叫唤*/ch=s[i];s[i]=s[m];s[m]=ch;i++; m--;}}39【参考答案】void fun( char s[],int c){int i=0;char *p;p=s;while(*p) /*判断是否为结束符*/{if(*p!=c) /*判断字符串中字符是否与指定字符相同*/ {s[i]=*p;/*不同将重新组合字符串,*/i++;}p++; /*相同则处理下一个字符。

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

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

全国计算机考试二级c语言真题题库答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. floatC. doubleD. A、B和C都是答案:D2. 下列哪个是合法的C语言变量名?A. 2variableB. variable-nameC. _variableD. variable name答案:C3. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A4. 以下哪个选项是C语言中的控制语句?A. ifB. switchC. whileD. A、B和C都是5. 在C语言中,哪个函数用于计算并返回一个浮点数的平方根?A. sqrt()B. pow()C. log()D. sin()答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int [10] array;D. A和B都是答案:D7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str = "Hello";D. A和B都是答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void function();B. int function();C. void function(int a);D. A、B和C都是答案:D9. 在C语言中,以下哪个选项表示“或”逻辑操作?B. ||C. !D. =答案:B10. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int id;char name[50];} employee;B. struct employee {int id;char name[50];};C. A和B都是D. A和B都不是答案:C11. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = NULL;D. A和C都是答案:D12. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fprintf()D. A、B和C都是13. 在C语言中,以下哪个选项表示“非”逻辑操作?A. &&B. ||C. !D. =答案:C14. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} color;C. A和B都是D. A和B都不是答案:C15. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. const double PI = 3.14159;C. A和B都是D. A和B都不是答案:A16. 在C语言中,以下哪个选项是正确的联合体声明?A. union {int a;float b;} data;B. struct {int a;float b;C. A和B都是D. A和B都不是答案:A17. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. A、B和C都是答案:D18. 在C语言中,以下哪个选项是正确的类型转换?A. (int)3.14B. (float)3C. A和B都是D. A和B都不是答案:C19. 在C语言中,以下哪个选项是正确的递归函数声明?A. void function();B. void function(int a);C. void function(void function());D. A和B都是答案:B20. 在C语言中,以下哪个选项是正确的预处理指令?A. #includeB. #defineC. #ifdefD. A、B和C都是二、程序填空题(每题5分,共20分)1. 请填写以下代码段中缺失的部分,以实现计算并打印一个整数的平方:```c#include <stdio.h>int main() {int num, square;scanf("%d", &num);square = num _____ num;printf("Square: %d\n", square);return 0;}```答案:*2。

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

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

计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。

A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。

A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。

A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。

A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。

答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。

答案:return3. 在C语言中,用于计算字符串长度的函数是____。

答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。

答案:'\0'5. 当使用指针变量时,必须先对其进行____。

答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。

```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。

全国c语言二级考试真题及答案

全国c语言二级考试真题及答案

全国c语言二级考试真题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个关键字用于声明一个函数?A. intB. floatC. voidD. function答案:C3. 在C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B4. C语言中,哪个函数用于计算并返回一个数的平方根?A. sqrt()B. square()C. root()D. pow()答案:A5. 下列哪个选项是C语言中的正确定义一个整型数组?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B6. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. %答案:A7. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A9. C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C10. 在C语言中,哪个函数用于将浮点数转换为字符串?A. sprintf()B. printf()C. scanf()D. atoi()答案:A11. C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "b"答案:A12. 在C语言中,哪个函数用于动态分配内存?A. malloc()B. calloc()C. realloc()D. free()答案:A13. C语言中,哪个关键字用于声明一个全局变量?A. globalB. externC. staticD. auto答案:B14. 在C语言中,哪个函数用于获取当前时间?A. time()B. date()C. localtime()D. mktime()答案:A15. C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. ~答案:D16. 在C语言中,哪个函数用于格式化输出?A. printf()B. scanf()C. fprintf()D. sprintf()答案:A17. C语言中,哪个关键字用于声明一个静态变量?A. staticB. externC. autoD. register答案:A18. 在C语言中,哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. pow()D. sqrt()答案:B19. C语言中,以下哪个选项是正确的递归函数定义?A. void factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }B. int factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }C. void factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }D. int factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }答案:B20. 在C语言中,哪个函数用于释放动态分配的内存?A. malloc()B. calloc()C. realloc()D. free()答案:D二、编程题(每题20分,共60分)1. 编写一个C语言函数,计算并返回两个整数的和。

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

全国计算机等级考试二级C语言真题题库2 2014年3月(总分43, 做题时间120分钟)一、选择题(每小题1分,共40分)1. 下列叙述中正确的是()。

A 每一个节点有两个指针域的链表一定是非线性结构B 所有节点的指针域都为非空的链表一定是非线性结构C 循环链表是循环队列的链式存储结构D 线性结构的存储节点也可以有多个指针答案:D[解析]一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有—个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。

双向链表节点具有两个指针域,属于线性结构,故A选项错误。

循环链表所有节点的指针域都为非空,属于线性结构,故B选项错误。

循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,故C选项错误。

双向链表节点具有多个指针域,故D选项正确。

2. 使用白盒测试方法时,设计测试用例应根据()。

A 程序的内部逻辑B 程序的复杂结构C 程序的功能D 使用说明书答案:A[解析]白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试,故A选项正确。

3. 在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是()。

A 多对多B 多对一C 一对多D 一对一答案:A[解析]一般来说,实体集之间必须通过联系来建立连接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。

医生可为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,故A选项正确。

4. 设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是()。

A 二分法查找B 顺序查找C 分块查找D 哈希查找答案:A[解析]对长度为n的线性表排序,最坏情况下时间复杂度,二分法查找为O(log2n);顺序查找法为O(n);分块查找时间复杂度与分块规则有关;哈希查找时间复杂度为O(1),因其通过计算HashCode来定位元素位置,所以只需一次即可。

故正确答案为A选项。

5. 设数据集合为D={1,3,5,7,9},D上的关系为R,下列数据结构B=(D,R)中为非线性结构的是()。

A R={ (5,1),(7,9),(1,7),(9,3)}B R={ (9,7),(1,3),(7,1),(3,5)}C R={ (1,9),(9,7),(7,5),(5,3)}D R={ (1,3),(3,5),(5,9)}答案:D[解析]一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。

A选项中,5为根节点,线性表为51793。

B选项中,9为根节点,线性表为97135。

C选项中,1为根节点,线性表为19753。

D选项中,节点1与7都是根节点,属于非线性结构,故D选项正确。

6. 深度为7的二叉树共有127个节点,则下列说法中错误的是()。

A 该二叉树有一个度为1的节点B 该二叉树是满二叉树C 该二叉树是完全二叉树D 该二叉树有64个叶子节点答案:A[解析]在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。

完全二叉树指除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少有边的若干节点。

满二叉树指除最后一层外,每一层上的所有节点都有两个子节点的二叉树。

深度为7的二叉树,前6层共有节点个数为26-1=63,则第7层有127-63=64个节点,即第7层节点数达到最大值,故此二叉树为满二叉树,也是完全二叉树,该二叉树没有度为1的节点,有64个叶子节点。

故正确答案为A选项。

7. 二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为()。

A DCBAB BDCAC ABCDD BADC答案:C[解析]二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。

本题中中序序列为BDCA,后序序列为DCBA,可知A 为根节点,BDC为左侧节点,C是B右子节点,D是C右子节点,故前序序列为ABCD,C选项正确。

8. 下面能作为软件需求分析工具的是()。

A PAD图B 程序流程图C 甘特图D 数据流程图(DFD图)答案:D[解析]软件需求分析方法包括结构化分析方法和面向对象的分析方法两大类,前者常用工具为数据流图(DFD)、数据字典(DD)、判定表、判定树等。

故D选项正确。

选项B是软件功能实现时设计图。

9. 下面不属于对象主要特征的是()。

A 唯一性B 多态性C 可复用性D 封装性答案:C[解析]对象的基本特点如下表所示。

可知C选项正确。

10.A (c,c,11,4)B (e,e,6,1)C (a,a,2,4)D (a,a,2,4)和(e,e,6,1)答案:A[解析]从关系中找出满足给定条件的元组的操作称为选择,“∧”为交运算,它由属于前者且属于后者的元组组成。

题目为选出属于属性B,同时属性C大于4,并且属性D大于3的元组,结果为(c,c,11,4),应保留全部属性。

故A选项正确。

11. C语言整数不包括()。

A 带小数点的整数B 正整数C 负整数D 无符号整数答案:A[解析]C语言整数包括正整数、负整数、无符号整数、不含带小数点的整数,故答案为A选项。

12. 设a,b,c是整型变量,且已正确赋初值,以下选项中错误的赋值语句是()。

A a=1%(b=c=2);B a=(b=3)*cC a=b=c/10D a=2=(b=9)=1答案:D[解析]D选项中,“()”具有最高优先级,b先赋值9,再根据赋值运算符号白右向左进行赋值,再给b赋值为1,再计算2=b,赋值运算符左边必须是一个变量,但数值2是常量,语法错误,故答案为D选项。

13. 以下选项中,合法的实数是()。

A 1.5E2B E1.1C 2.10ED 1.9E1.4答案:A[解析]E表示“10的幂次”,E的右侧必须是整数,排除B、C、D选项、答案为A选项。

14. 关于程序设计基本概念,以下叙述错误的是()。

A 计算机可以直接执行由任意高级语言编写的程序B 高级语言都有与之对应的编译程序或解释程序C 用任何一种计算机高级语言都可以把算法转换为程序D 结构化算法可以解决任何复杂的问题答案:A[解析]计算机只能识别机器语言,不能直接识别由高级语言编写的程序,故答案为A 选项。

15. 以下不能用于实型数据的运算符是()。

A %B /C *D +答案:A[解析]“%”符号两边必须是整数,因此答案为A选项。

16. C语言中,最基本的数据类型包括()。

A 整型、实型、逻辑型B 整型、字符型、数组C 整型、实型、字符型D 整型、实型、结构体答案:C[解析]C语言中,最基本的数据类型包括整型、实型、字符型,答案为C选项。

17. 若有定义:int=0,b=0,c=0,d=0;,有C语言表达式(a++&&b++)?c++:d++,以下关于其执行顺序的叙述正确是()。

A 先执行a++,表达式a++的值为0,短路,得a++,执行它B 先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++&&b++)值为0,因此执行d++C 先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++&&b++)值为1,由此可确定(a++&&b++)值为1,因此执行c++D 先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++&&b++)值为1,因此执行c++答案:A[解析]表达式1?表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3。

逻辑与运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为0,因此右操作数b++不再求解,直接执行表达式3,即d++,答案为A选项。

18. 有以下程序:程序运行后的输出结果是()。

A 123B ABCC abcD 012答案:A[解析]当满足ch<'E',输出ch-'A',即字符在ASCII码相减进行输出,%d表示输出十进制整数。

循环开始,ch=’B’,print(“%d”,ch-'A')=1,以此类推,答案为A选项。

19. 以下关于指针的叙述,错误的是()。

A 两个基类型相同的指针变量不能指向同一个对象B 可以通过对指针变量自增、自减来移动指针C 只有两个类型相同的指针才能进行减运算D 一个指针变量可以通过不同的方式获得一个确定的地址值答案:A[解析]只要两个指针变量基类型相同,可以指向同一个对象,故答案为A选项。

20. 对于函数声明:void fun(float array[],int *ptr);以下叙述正确的是()。

A 调用函数时,array数组的元素和Ptr都是按值传送B 函数声明有语法错误,参数array缺少数组大小定义C 调用函数时,array数组中将存储从实参中复制来的元素值D 函数参数array,ptr都是指针变量答案:D[解析]void fun(float array[],int *ptr)定义了2个形参:array[]和*ptr,其中函数形参中int array[]其实相当于int *array,答案为D选项。

21. 有以下程序:程序运行后的输出结果是()A 1,0,2,0,0,9B 1,2,4,9,6,0C 2,9,0,0,1,4D 1,2,0,1,4,1答案:A[解析]本题定义一个4行2列数组,其中赋值6个数,其余自动为0,根据for循环,第一次输出第一列前三行数,分别是1,0,2;第二次输出第二列前三行数,分别是0,0,9,因此答案为A选项。

22. 要求定义一个具有6个元素的int型一维数组,以下选项中错误的是()。

A int N=6,a[N];B int a[2*3] ={0};C #define N 3int a[N=N];D int a[] ={1,2,3,4,5,6};答案:A[解析]数组名后面括号内,必须是整型常量,不可以是变量,A选项定义错误,答案为A选项。

执行时若输入以下字符串:Peach flower is Pink.<回车>则输出结果是()。

A Peachflower is pink.B Peachfloweris Pink.C Peachflowerispink.D Peach flower is pink.答案:A[解析]由于用“%s”格式输出字符串时,是以空格作为间隔符,因此,输入给b[0]=“Peach”,b[1]=“flower”,而while语句给c赋值时,getchar()能识别空格符,b[2]=“is Pink”,答案为A选项。

相关文档
最新文档