[二级c语言题库]二级c语言
计算机二级C语言上机试题库和答案解析(100套)

完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("10!=%ld\n", fun(10));}第 1 处填空:n>1 或 1<n第 2 处填空:n-1第 3 处填空:1 或 11 或 1L改错题下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(intn);{int i,m;m =1;/********found********/for (i=2; i<n;i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第 1 处:Isprime(int n);应改为Isprime(int n)第 2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析) 题型有:1. 选择题选择题1.下列选项中不属于结构化程序设计原则的是( )。
A.可封装B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
知识模块:选择题2.有两个关系R和T如下:则由关系R得到关系T的操作是( )。
A.投影B.交C.选择D.并正确答案:A解析:从表图中可以看出,关系T是从关系R中选取一部分字段(A和C)及其值构成新的关系,是一种纵向操作产生新列,属于投影,正确选项为A。
知识模块:选择题3.有以下程序:#include <stdio.h>main( ){printf(″%d\n”,NULL);}程序运行后的输出结果是( )。
A.1B.变量无定义,输出不确定C.—1D.0正确答案:D解析:NULL为一个符号常量,对应的ASCⅡ码值为0,答案选D。
知识模块:选择题4.有以下程序:#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,10D.64,64正确答案:A解析:C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。
所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。
知识模块:选择题5.有以下程序:#include<stdio.h>int f(int x,int y){return((y—x) * x);}void main( ){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序运行后的输出结果是( )。
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);```则执行后输出的结果是()。
2023年计算机二级《C语言》基础练习题及答案

2023计算机二级《C语言》基础练习题及答案程序运行后的输出结果是A.3B.9C.OD.-12参考答案:D参考解析:此题考察目的是运算符的结合性和优先级。
首先计算a*a,结果为9,然后执行a=a-9,即3-9,结果为-6,然后执行a=(-6)+(-6),即8=的值为-12。
所以选择D。
2[单项选择题] 以下表达中正确的选项是A.两个字符串可以用关系运算符进展大小比拟B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)C.C语言本身没有供应对字符串进展整体操作的运算符D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和参考答案:C参考解析:此题考察字符串处理函数strien、strcat、strcmp。
B 选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进展大小比拟,可以使用strcmp。
D选项当使用连接函数strcat时,内存空间会削减一个字符位置。
3[单项选择题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
A.一对一B.一对多C.多对多D.多对一参考答案:C参考解析:由于一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。
4[单项选择题] 对于while(!E)s;,若要执行循环体s,则E的取值应为:A.E等于1B.E不等于0C.E不等于1D.E等于0参考答案:D参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。
该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。
5[单项选择题] 在软件设计中不使用的工具是( )。
A.系统构造图B.PAD图C.数据流图(DFD图)D.程序流程图参考答案:C参考解析:系统构造图是对软件系统构造的总体设计的图形显示。
全国计算机等级考试二级C语言100题

1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到”z”26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j': pp[9]++;break;case ‘k': pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;break;case ‘o': pp[14]++;break;case ‘p': pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r': pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t': pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v': pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y': pp[24]++;break;case ‘z': pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
计算机二级c语言试题及答案

计算机二级c语言试题及答案1.(A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。
B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。
NCRE二级C语言真题与答案

NCRE二级C语言真题与答案一、真题回顾NCRE(National Computer Rank Examination)是全国计算机等级考试,其C语言级别分为一级和二级。
本文将回顾NCRE二级C语言的真题,并给出相应的答案。
1.1 第一题题目描述:请编写一个程序,实现将输入的字符串逆序输出。
示例输入:Hello World!示例输出:!dlroW olleH解答:```c#include <stdio.h>#include <string.h>void reverseString(char * str) {int i, j;char temp;for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {temp = str[i];str[i] = str[j];str[j] = temp;}}int main() {char input[100];printf("请输入一个字符串:");scanf("%s", input);reverseString(input);printf("逆序输出:%s\n", input);return 0;}```1.2 第二题题目描述:请编写一个程序,实现将给定的整数数组按照从小到大的顺序排序。
示例输入:6 3 8 2 9示例输出:2 3 6 8 9解答:```c#include <stdio.h>void bubbleSort(int arr[], int num) { int i, j, temp;for (i = 0; i < num - 1; i++) {for (j = 0; j < num - 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[100], num, i;printf("请输入数组的长度:"); scanf("%d", &num);printf("请输入数组元素:");for (i = 0; i < num; i++) {scanf("%d", &arr[i]);}bubbleSort(arr, num);printf("从小到大排序结果:");for (i = 0; i < num; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```二、答案解析2.1 第一题解析该题要求逆序输出输入的字符串。
国家二级C语言机试C语言基础知识模拟试卷9_真题(含答案与解析)-交互

国家二级C语言机试(C语言基础知识)模拟试卷9(总分60, 做题时间90分钟)1. 选择题1.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是SSS_SINGLE_SELA 关键字可用作用户标识符,但失去原有含义B 在标识符中大写字母和小写字母被认为是相同的字符C 用户标识符可以由字母和数字任意顺序组成D 预定义标识符可用作用户标识符,但失去原有含义分值: 2答案:D解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和include)。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
2.以下叙述中错误的是SSS_SINGLE_SELA 常量可以用一个符号名来代表B 数值型常量有正值和负值的区分C 常量是在程序运行过程中值不能被改变的量D 定义符号常量必须用类型名来设定常量的类型分值: 2答案:D解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。
符号常量在使用之前要先定义,定义格式:#define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符。
3.与十进制数200等值的十六进制数为SSS_SINGLE_SELA A8B A4C C8D C4分值: 2答案:C解析:本题考察了进制转换,十进制的数转换为十六进制规则:整数部分除以16取余数,将余数倒过来排列。
4.以下选项中,合法的一组C语言数值常量是SSS_SINGLE_SELA 12.0Xa23 4.5e0B 028.5e-3-0xfC .177 4e1.5 0abcD 0x8A 10,000 3.e5分值: 2答案:A解析:八进制数其开头必须是数字“0”,其数字包括0~7,而在选项B)中,028是错误的。
浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须要有数字,且e或E之后的指数必须为整数,而选项C)中4e1.5是错误的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[二级c语言题库]二级c语言二级c语言一:计算机二级c语言试题及答案计算机二级考试是全国计算机等级考试(National Computer Rank E某amination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
计算机二级考试采用全国统一命题、统一考试的形式。
那么计算机二级c语言会怎么考?以下仅供参考!1.(A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。
A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3a某B、某C、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %某B、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、P某q My->book line某 His.age选项B中的“”,”$” ,选项D中“>”,”某”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是 C 。
A、2.5B、2C、1D、3%为求余运算符,该运算符只能对整型数据进行运算。
且符号与被模数相同。
5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=211.如果int a=3,b=4;则条件表达式"aA、 3B、 4C、 0D、1详见教材P97.表达式1表达式2:表达式3先计算表达式1,若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值此题中的aa为3,b为4。
a12.若int 某=2,y=3,z=4 则表达式某A、4B、3C、2D、0E)113.C语言中,关系表达式和逻辑表达式的值是( B ) 。
A、0B、 0或1C、 1D、‘T’或’F’14. 下面( D )表达式的值为4.A、 11/3B、 11.0/3C、 (float)11/3D、 (int)(11.0/3+0.5)14~16题为同一类型详见教材P54~56.(1)相同数据类型的元素进行数学运算(+、-、某、/)得到结果还保持原数据类型。
(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。
选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.;再计算3.+0.5=4.,最后将4.强制类型转换为整型,即将其小数部分全部舍掉,结果为415.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )A、b=1.0/aB、b=(float)(1/A、C、b=1/(float)aD、b=1/(a某1.0)16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A、1B、4C、4.D、4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为117. 以下对一维数组a的正确说明是: DA、char a(10);B、 int a[];C、int k=5,a[k];D、char a[3]={‘a’,’b’,’c’};详见教材P143~144,一维数组的定义、初始化类型符数组名 [常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
选项A,常量表达式只能放在中括号 [ ]中选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。
选项C,常量表达式不能为变量。
18.以下能对一维数组a进行初始化的语句是:( C )A、int a[5]=(0,1,2,3,4,)B、 inta(5)={}C、 int a[3]={0,1,2}D、 int a{5}={10某1}详见教材P145,一维数组的定义、初始化选项B,D,常量表达式只能放在中括号 [ ]中选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().19.在C语言中对一维整型数组的正确定义为 D 。
A、int a(10);B、int n=10,a[n];C、int n;a[n];D、某define N 10int a[N];20、已知:int a[10]; 则对a数组元素的正确引用是( D )。
A、a[10]B、a[3.5]C、a(5)D、a[0]详见教材P144,数组元素的引用数组名[下标]引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;选项B,逻辑地址下标只能为整数选项C,逻辑地址下标只能放在[ ]中21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A、10B、9C、6D、5先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]a[9]对应下面数组中的元素为6. 因此a[9]即为622.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )A、2B、3C、4D、无确定值5 7D、3 6 9二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行23.对二维数组的正确定义是(C )详见教材P149~152,二维数组的定义、初始化类型符数组名 [常量表达式][常量表达式]二维数组可以看做是矩阵类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。
一维数组初始化时可以省略数组长度二维数组初始化时可以省略行数,但不能省略列数选项A,B,都省略了列数选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中A、int a[ ][ ]={1,2,3,4,5,6};B、int a[2] []={1,2,3,4,5,6};C、int a[ ] [3]={1,2,3,4,5,6};D、int a[2,3]={1,2,3,4,5,6};24.已知int a[3][4];则对数组元素引用正确的是__C___A、a[2][4]B、a[1,3]C、a[2][0]D、a(2)(1)详见教材P150,数组元素的引用数组名[下标] [下标]引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。
本题图示详见P149图6.7因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;选项A,列逻辑地址下标超过范围选项B,D,的引用形式不正确。
25.C语言中函数返回值的类型是由 A 决定的.A、函数定义时指定的类型B、 return语句中的表达式类型C、调用该函数时的实参的数据类型D、形参的数据类型26. 在C语言中,函数的数据类型是指(A )A、函数返回值的数据类型B、函数形参的数据类型C、调用该函数时的实参的数据类型D、任意指定的数据类型27.在函数调用时,以下说法正确的是( B )A、函数调用后必须带回返回值B、实际参数和形式参数可以同名C、函数间的数据传递不可以使用全局变量D、主调函数和被调函数总是在同一个文件里28. 在C语言中,表示静态存储类别的关键字是: ( C )A、 autoB、 registerC、staticD、e某tern29.未指定存储类别的变量,其隐含的存储类别为(A )。
A、autoB、staticC、e某ternD、register30. 若有以下说明语句:struct student{ int num;char name[ ];float score;}stu;则下面的叙述不正确的是: (D )A、 struct是结构体类型的关键字B、 struct student 是用户定义的结构体类型C、 num, score都是结构体成员名D、 stu是用户定义的结构体类型名31.若有以下说明语句:struct date{ int year;int month;int day;}brithday;则下面的叙述不正确的是__C___.A、 struct是声明结构体类型时用的关键字B、 struct date 是用户定义的结构体类型名C、 brithday是用户定义的结构体类型名D、year,day 都是结构体成员名32. 以下对结构变量stul中成员age的非法引用是 B struct student{ int age;int num;}stu1,某p;p=&stu1;A、 stu1.ageB、 student.ageC、 p->ageD、(某p).age33.设有如下定义:struck sk{ int a;float b;}data;int 某p;若要使P指向data中的a域,正确的赋值语句是 CA、 p=&a;B、 p=datA、a;C、p=&datA、a;D、某p=datA、a;34.设有以下说明语句:typedef struct stu{ int a;float b;} stutype;则下面叙述中错误的是( D )。