C语言模拟试题II
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语言程序,实现两个整数的交换。
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[单选题] 以下叙述中正确的是( )。
A.用C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上参考答案:D参考解析:C语言编写的程序可以放置于多个程序文件中,所以A 错误。
C程序中的一行可以有多条语句,所以B错误。
C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。
2[单选题] 以下选项中,能用作数据常量的是( )。
A.115LB.0118C.1.5el.5D.0115参考答案:A参考解析:A选项中l15L表示ll5是长整型数据,合法。
B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。
c选项中e后面应该是整数不能是小数l.5,所以c错误。
D选项中八进制常量应该是数字…0开始,而不是字母…O开始。
3[单选题] 对于一个正常运行的C程序,以下叙述中正确的是( )。
A.程序的执行总是从main函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在main函数结束.C.程序的执行总是从main函数开始、D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束参考答案:C参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。
4[单选题] 有以下程序:程序运行后的输出结果是( )。
A.1 2B.1 4C.123 4D.123 456参考答案:D参考解析:fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。
执行两次fprintf后。
文件中的内容为。
l23 456”,所以D选项正确。
5[单选题] 有以下程序:程序运行后的输出结果是( )。
A.1,2,1,2,2,4B.1,2,6,6,7,8C.1,2,2,4,2,4D.1,2,6,6,2,4参考答案:A参考解析:全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。
计算机2级C语言模拟题
计算机2级C语言模拟题笔试部分一、选择题1.串的长度是( )A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数【参考答案】D2.以下不属于对象的基本特点的是( )A.分类性B.多态性C.继承性D.封装性【参考答案】C3.下面不属于软件设计原则的是( )A.抽象B.模块化C.自底向上D.信息隐蔽【参考答案】C4.下列SQL语句中,用于修改表结构的是( )A.ALTERB.CREATEC.UPDATED.INSERT【参考答案】A5.关系模型允许定义3类数据约束,下列不属于数据约束的是( )A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束【参考答案】C6.非空的循环单链表head的尾结点(由p所指向),满足( )A.p->next==NULLB.p==NULLC.p->next=headD.p=head【参考答案】C7.对建立良好的程序设计风格,下面描述正确的是( )A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无【参考答案】A8.在软件生产过程中,需求信息的给出是( )A.程序员B.项目管理者C.软件解析设计人员D.软件用户【参考答案】D9.NULL是指( )A.0B.空格C.未知的值或无任何值D.空字符串【参考答案】C10.下列说法中,不属于数据模型所描述的内容的是( )A.数据结构B.数据操作C.数据查询D.数据约束【参考答案】C11.在C语言中,退格符是()A.\nB.\tC.\fD.\b【参考答案】D12.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25 &&b--<=2 &&c? printf(″***a=%d,b=%d,c=%d\n″,a,b,c):printf(″###a=%d,b=%d,c=%d\n″,a,b,c);程序输出的结果是()A.* * *a=25,b=13,c=19B.* * *a=26,b=14,c=19C.### a=25,b=13,c=19D.### a=26,b=14,c=19【参考答案】C13.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是()#includemain(){ char c;int v0=1,v1=0,v2=0;do{ switch(c=getchar()){ case ′a′:case′A′:case′e′:case′E′:case′i′:case′I′:case′o′:case′O′:case′u′:case′U′:v1+=1;default:v0+=1;v2+=1;}} while(c!=′\n′);print f(″v0=%d,v1=%d,v2=%d\n″,v0,v1,v2); }A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v0=13,v1=4,v2=1214.执行下面的程序段后,变量k中的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.10【参考答案】A15.有如下程序段int a=14,b=15,x;char c=′A′;x=(a&&b)&&(c<′B′);执行该程序段后,x的值为()A.tureB.falseC.0D.1【参考答案】D16.以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n){ int i,j=0,p;p=j;for(i=j;i<n;i++)< p="">if(a[i]>a[p])_______return(p);}在下划线处应填入的内容是()A.i=pB.a[p]=a[i]C.p=jD.p=i 【参考答案】D17.有如下程序main(){ char s[]=″ABCD″,*p;for(p=s+1;p<s+4;p++)printf(″%s\n″,p);< p="">}该程序的输出结果是()A.ABCDB.ABCD BCD CD DC.BD.BCDC CDD D【参考答案】D18.以下正确的说法是()A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准【参考答案】B19.结构化程序设计的三种基本逻辑结构是( )A.选择结构、循环结构和嵌套结构B.顺序结构、选择结构和循环结构C.选择结构、循环结构和模块结构D.顺序结构、递归结构和循环结构【参考答案】C20.设有如下定义struck sk{ int a;float b;} data;int * p;若要使p指向data中的a域,正确的赋值语句是()A.p=8a;B.p=data.a;C.p=&data.aD.*p=data.a;【参考答案】C21.在下述程序中,判断i>j共执行的次数是()main(){ int i=0,j=10,k=2,s=0;for(;;){ i+=k;if(i>j){ printf(″%d″,s);break;}s+=i;}}A.4B.7C.5D.6【参考答案】D22.以下程序的输出是()struct st{ int x;int *y;} *p;int dt[4]={10,20,30,40};struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt [0],60,&dt[0]};main(){ p=aaprintf(″%d\n″,++(p->x));}A.10B.11C.51D.60【参考答案】C23.下列数据中,不合法的C语言实型数据的是()A.0.123B.123e3C.2.1e3.5D.789.0【参考答案】C24.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )A.intB.floatC.doubleD.不确定【参考答案】C25.设以下变量均为int类型,表达式的值不为7的是()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)【参考答案】C26.若变量a是int型,并执行语句:a=′A′+1.6;,则正确的叙述是( )A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符′A′的ASCII值加上1【参考答案】D27.有如下程序main(){int x=23;do{ printf(″%d″,x--);} while(!x);}该程序的执行结果是()A.321B.23C.不输出任何内容D.陷入死循环【参考答案】B28.若变量c为char类型,能正确判断出c为小写字母的表达式是()A.′a′<=c<=′z′B.(c>=′a′)||(c<=′z′)C.(′a′<=c)and(′z′>=c)D.(c>=′a′)&&(c<=′z′)【参考答案】D29.下面程序段的运行结果是()char str[]=″ABC″,*p=str;printf(″%d\n″,*(p+3));A.67B.0C.字符′C′的地址D.字符′C′【参考答案】B30.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))【参考答案】D31.有以下程序fun(int x,int y,int z){ z=x*y;}main(){int a=4,b=2,c=6;fun(a,b,c);printf(″%d″,c);}程序运行后的输出结果是()A.16B.6C.8D.12【参考答案】B32.以下叙述中不正确的是()A.预处理命令都必须以#号开始B.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.在以下定义是正确的:#define PI 3.1415926【参考答案】D33.下面程序段的运行结果是()char *p=″abcdefgh″;p+=3;printf(″%d\n″,strlen(strcpy(P,″ABCD″)));A.8B.12C.4D.7【参考答案】C34.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是()A.一个整型变量,代表要读入的数据项总数B.一个文件指针,指向要读的文件C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项【参考答案】C35.C语言规定,在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后【参考答案】C36.以下叙述中正确的是( )A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点【参考答案】C37.C语言中最简单的数据类型包括( )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型【参考答案】B38.下列可用于C语言用户标识符的一组是( )A.void define WORDB.a3_b3 _123 CarC.For abc IFCaseD.2a DO sizeof【参考答案】B39.已知int t=0;while (t=1){…}则以下叙述正确的是( )A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对【参考答案】B40.有以下程序main(){ int i=1,j=1,k=2;if((j++ || k++)&&i++)printf(″%d,%d,%d\n″,i,j,k);}执行后输出结果是( )A.1,1,2B.2,2,1C.2,2,2D.2,2,3 【参考答案】C41.在下列选项中,没有构成死循环的是( )A.int i=100;while(1){ i=i%100+1;if(i>100)break;}B.for(;;);C.int k=1000;do{k++;}while(k>10000);D.int s=36;while(s)--s;【参考答案】D42.有以下程序float fun(int x,int y){return(x+y);}main(){ int a=2,b=5,c=8;printf(″%3.0f\n″,fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是( )A.编译出错B.9C.21D.9.0【参考答案】B43.设有以下说明语句struct stu{ int a;float b;} stutype;则下面的叙述不正确的是( )A.struct是结构体类型的关键字B.struct stu是用户定义的结构体类型C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名【参考答案】C44.以下说法正确的是( )A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分【参考答案】C45.下列程序执行后的输出结果是( )void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5]={0};a=0;b[0]=3;func(&a,b);printf(″%d\n″,b[0]);}A.6B.7C.8D.9【参考答案】A46.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){ int i,j,t;for(i=0;i<n-1;i++)< p="">for(j=i+1;j<n;j++)< p="">if(a[i]< p="">}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf(″%d″,aa[i]);printf(″\n″);}程序运行后的输出结果是( )A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10,D.1,2,10,9,8,7,6,5,4,3,【参考答案】C47.若执行下述程序时,若从键盘输入6和8时,结果为( ) main(){ int a,b,s;scanf(″%d%d″,&a,&b);s=aif(a<b)< p="">s=b;s*=s;printf(″%d″,s);}A.36B.64C.48D.以上都不对【参考答案】B48.有以下程序void ss(char *s,char t){ while( *s){ if(*s==t)*s=t-′a′+′A′s++;</b)<><></n;j++)<></n-1;i++)<></s+4;p++)printf(″%s\n″,p);<></n;i++)<>。
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语言模拟卷
计算机二级模拟卷一、选择题1.假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A.3B.6C.10D.20参考答案:D参考解析:x数组共有10个元素,在花括号内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。
2.对于循环队列,下列叙述中正确的是( )。
A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针参考答案:D参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。
因为是循环利用的队列结构所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。
3.下列有关函数重载的叙述中,错误的是( )。
A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值参考答案:C参考解析:所谓函数重载是指同一个函数名可以对应着多个函数的实现。
每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同,还允许参数的个数不同,但不能只有函数的返回值类型不同而参数的个数和类型相同的重载。
所以本题答案为c。
4.下面关于类和对象的描述中,错误的是( )。
A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量B.类和对象之间的关系是抽象和具体的关系C.对象是类的实例,一个对象必须属于一个已知的类D.类是具有共同行为的若干对象的统一描述体参考答案:A参考解析:在c++语言中,类和结构体有本质区别,类中包含数据及操作函数,而结构体只包含有数据。
5.有如下程序:#inCludeusing namespaCe std;Class test{private:int a;publiC:test( ){Cout<<”ConstruCtor”<test(int A.{Cout<test(Const test&_test){ a=test.a:Cout<<”Copy ConstruCtor”<test( ){Cout<<”destruCtor”<};int main( ){ test A(3); return 0;}执行这个程序的输出结果是( )。
二级c语言考试题及答案文档
二级c语言考试题及答案文档一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. integerC. stringD. float答案:A2. C语言中,用于定义一个整型变量的关键字是?A. varB. letC. intD. integer答案:C3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个函数用于计算两个数的和?A. pow()C. abs()D. sum()答案:D5. 在C语言中,哪个函数用于输入一个字符?A. scanf()B. getchar()C. printf()D. puts()答案:B6. 下列哪个选项是正确的C语言变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B7. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void答案:D8. C语言中,用于输出一个整数的函数是?B. printf()C. cout()D. print()答案:B9. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. &D. |答案:A10. 在C语言中,哪个关键字用于跳过当前循环的迭代?A. continueB. breakC. returnD. exit答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个结构体。
答案:struct2. C语言标准库函数________用于计算一个浮点数的平方根。
答案:sqrt3. 使用________运算符可以将字符'A'转换为对应的ASCII码值。
答案:(int)'A'4. 在C语言中,使用________函数可以输出格式化的字符串。
c语言二级考试试题
c语言二级考试试题第一部分:选择题(共50题,每题2分,共100分)1. 下列哪个选项不是C语言中的数据类型?A. intB. floatC. boolD. char2. 当要输入一个整数时,应该使用哪个输入函数?A. scanfB. printfC. getsD. puts3. 在C语言中,下面哪个关键字用于声明一个函数?A. varB. funC. defD. void...第二部分:编程题(共4题,每题25分,共100分)1. 编写一个程序,输入一个整数n,计算并输出1~n的累加和。
2. 编写一个程序,输入一个字符串,计算并输出字符串中字符的个数。
3. 编写一个程序,输入一个整数n,判断它是否是质数,输出判断结果(是/不是)。
4. 编写一个程序,输入一个整数n,输出它的阶乘结果。
...第三部分:编程实战题(共1题,共300分)题目:实现字符串排序要求:编写一个程序,输入一个字符串,对其进行升序排序,并输出排序后的结果。
示例输入:"hello world"示例输出:"dehllloorw"代码实现如下:```c#include <stdio.h>#include <string.h>void bubbleSort(char str[]) {int n = strlen(str);for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (str[j] > str[j+1]) {char temp = str[j];str[j] = str[j+1];str[j+1] = temp;}}}}int main() {char str[100];printf("请输入一个字符串:");gets(str);bubbleSort(str);printf("排序后的结果:%s\n", str); return 0;}```...第四部分:编程项目(共1项目,共500分)项目:实现一个简单的留言板程序要求:编写一个C语言程序,实现一个简单的留言板功能。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
C语言模拟试题II
《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案一、单项选择题(每题2分,30道题,共60分)1.下面的程序将输出:main(){float f;int x=1,y=;f=x/y;printf("f=%,y=%#X", f, y );}= , y=2 = , y=0X2 = , y=0X2 = , y=22.下面的程序将输出:#include ""main(){int len;char str[]="a\b\04235\0";len=strlen(str);printf("%d",len);}A. 10B. 5C. 6D. 73.下面的程序将输出:main(){int a=0x31;char *str[]={"this is one. ","this is two. "};char ch;ch=++a-’0’;switch(ch){case 1: printf ("%s", str[0]);case 2: printf ("%s", str[1]);default: printf ("no way! ");}}is one. is two. way! is way!4.下面的程序将输出:main(){int a[5]={1,2,3};int k,j;for(k=1;k<4;k++)a[k]++;for(j=0;j<5;j++)printf("%d ",a[j]);}3 4 1 0 3 4 1 0 3 4 0 0 3 4 0 05.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:int a[10];int *p;p=a;[2]=1; [1]=1; C.*(p++)=1; D.*(++a)=1;6.下面程序将输出:void add(int a){a++;return;}main(){int k;k=;add(k);printf("%d",k);}A. B. C. 3 D. 47.下列循环结构中,不是..无限循环的是:A. for(i=1, s=0; ; i++)B. i=10;s=s+i ; while(1){i=i%10+1;if(i>10) break; }C. int i=0;D. i =100;do{ ++i ; }while(i>=0); while(++i%2) i++;8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:[2][2] [5] [5] [1][1]9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少?A. 0X5050B. 0X5002C. 0X5004D. 0X504010.若有说明int a[2][2];那么,下面正确的C赋值语句是:=2; [1]=2; [1]={1,2}; [0][1]=a[1][0];11.设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A.10 B.20 C.40 D.3012.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是:A.0 B.语法错C.1 D."假"13.下面能正确进行字符串...赋值操作的语句是:A.char s[5]={"ABCDE"}; B.char s[]={'A','B','C','D','E'};C.char *s;s="ABCDEF"; D.char *s;scanf("%s",s);14.已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.A.(a+6) B.*(&a[0]+6) C.a[2][2] D.*(&a[0][0]+6) 15.设有以下说明和定义:typedef union { long i; int k[4]; char c; }DATE;struct date { int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A.26 B.30 C.18 D.816.设有如下定义:int *(*ptr)();则以下叙述中正确的是A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针17.若二维数组a 有m列,则在a[i][j]之前的元素个数为______A.j*m+i B.i*m+j C. i*m+j-1 D.i*m+j+118.以下程序运行后,输出结果是A.13 B.51 C.11 D.53int d=1;fun (int p){int d=5;p=d;printf("%d",p);}main(){int a=3;fun(a);d=a;printf("%d\n",d);}19.以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为A.4 B.7 C.6 D.5#include<>#include<>func(char str[ ] ){ int num =0;while(*(str+num)!='\0') num++;return(num);}main( ){char str[10],*p=str;gets(p); printf("%d\n",func(p));}20.执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A.15 B.14 C.13 D.1221.已知定义了两个结构体变量,下面是正确的语句是:struct {int x; char name[10]; float mark;} S1,S2;A. S1={5, ”yang”, };B. S1=S2;C. = ; = ; =;D. strcpy(S1,S2);22.下面这段程序运行的结果是:int a=0x4145;char *p;p=(char *)&a;*p+=1;printf(“%X” , *p);A. 46B. 4223.下面这段程序运行的结果是:char str[ ]=”%#X”;int a=50;printf(str,a++);D.有语法错24.下面哪个语句是函数的原型声明A. int (*f)(int a , int b);B. int f(int a , 5);C. int f(int a , int b);D. int f(int a=5, int b=6);25.已知int a=0XF11F , b; 执行完下面的操作后,a的值是多少?b=(a&0xFF00)>>4;A. 0X0FF1B. 0XF11F D. 0XFFF126.有以下程序:int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是。
c语言二级模拟试题
c语言二级模拟试题# C语言二级模拟试题一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言具有丰富的数据类型C. C语言是面向对象的编程语言D. C语言支持多文件编程2. 在C语言中,以下哪个关键字用于定义一个函数?A. `int`B. `void`C. `return`D. `function`3. 以下哪个运算符不能用于算术运算?A. `+`B. `-`C. `*`D. `&&`4. 在C语言中,以下哪个语句用于实现循环?A. `if`B. `switch`C. `while`D. `for`5. 以下哪个选项是C语言中的合法变量名?A. `2variable`B. `variable-name`C. `case`D. `default`6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. `strcpy`B. `strcat`C. `strlen`D. `strncat`7. 在C语言中,以下哪个关键字用于定义一个结构体?A. `struct`B. `union`C. `enum`D. `typedef`8. 在C语言中,以下哪个语句用于定义一个枚举类型?A. `typedef`B. `enum`C. `struct`D. `union`9. 在C语言中,以下哪个函数用于计算一个整数的绝对值?A. `abs`B. `fabs`C. `floor`D. `ceil`10. 在C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. `sprintf`B. `strcpy`C. `strcat`D. `atoi`二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于_______。
2. 一个C语言程序的执行从`main`函数开始,`main`函数的返回类型通常是_______。
3. 在C语言中,`scanf`函数用于_______。
c语言程序设计模拟试题2(附答案)
printf("%d,",a+=10); } void f2(void) {
printf("%d,",a+=3); } void main() {
int a=10; f1(a); f2(); printf("%d\n",a); } (A)60,63,60 (B)20,23,23 (C)20,13,10 (D)20,53,10 15.执行下述程序的输出结果是 (A )。 #include <> int power(int x,int y); main() { float a=,b=; int p; p=power((int)a,(int)b); printf("%d\n",p); } int power(int x,int y) { int i,p=1; for (i=y;i>0;i--) p=p*x; return (p); } (A)8 (B)9 (C)27 (D)81 16.已知函数 scopy 的定义如下 void scopy(char *s,char *t)
invert(a,n-1); for (i=0;i<10;i++)
printf("%3d printf("\n");
” ,a[i]);
}
invert(int *s,int num)
{
int *t,k;
t=s+num; while (____t>=s ________)
{
k=*s;
*s=*t;
*t=k; s++;
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语言》模拟考试题+参考答案
《二级C语言》模拟考试题+参考答案1、设二叉树如下:则前序遍历为()。
A、ABDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH答案:A2、下面概念中,不属于面向对象方法的是()。
A、继承B、类C、对象D、过程调用答案:D3、下列叙述中正确的是()。
A、break语句只能用于switch语句B、break语句必须与switch语句中的case配对使用C、在switch语句中,不一定使用break语句D、在switch语句中,必须使用default答案:C4、以下程序段中,循环次数不超过10的是()。
A、int i=10do{i=i+1}whilei<0B、int i=6do{i-=2}whilei!=1C、int i=int i=5do{i+=1}whilei>0D、int i=1do{i+=2}whilei!=10答案:A5、对图书进行编目时,图书有如下属性:ISBN书号,书名,作者,出版社,出版日期。
能作为关键字的是()。
A、ISBN书号B、书名C、作者,出版社D、出版社,出版日期答案:A6、下列不属于数据库设计任务的是()。
A、设计数据库物理结构B、设计数据库概论结构C、设计数据库逻辑结构D、设计数据库应用结构答案:D7、一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出的顺序是()。
A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA答案:B8、以下不能用于实型数据的运算符是()。
A、+B、%C、*D、/答案:B9、若要实现total=1+2+3+4+5求和,以下程序段错误的是()。
A、int i=0,total=0whilei<5 { i+=1total+=i}B、int i=1,total=0whilei<=5 { total+=ii+=1}C、int i=0,total=0whilei<=5 { total+=ii+=1}D、int i=1,total=1whilei<5 { total+=ii+=1}答案:D10、有以下定义 inta; long b; double x,y; 则以下选项中正确的表达式是()。
《二级C语言》模拟题与答案
《二级C语言》模拟题与答案一、单选题(共100题,每题1分,共100分)1、若已有定义语句: inta,b,c; 且变量已正确赋初值,则以下选项中正确的赋值表达式是()。
A、a=(b=c)+8;B、(a=b)=c=9;C、a=(b==c)='A';D、a+b=c+1;正确答案:A2、数据库系统的三级模式不包括()。
A、数据模式B、内模式C、概念模式D、外模式正确答案:A3、数据结构中,与所使用的计算机无关的是数据的()。
A、逻辑结构B、存储结构C、物理结构D、线性结构正确答案:A4、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A、(!E==0)B、(E!=0)C、(E>0ǁE<0)D、(E==0)正确答案:D5、"有如下程序:#include main() { int i; for (i=0;i<5;i++) putchar('9'-i); printf(""); } 程序运行后的输出结果是()。
"A、54321B、'9''8''7''6''5 'C、98765D、'43210'正确答案:C6、设有一个商店的数据库,记录客户及其购物情况,由三个关系组成:商品(商品号,商品名,单价,商品类别,供应商),客户(客户号,姓名,地址,电邮,性别,身份证号),购买(客户号,商品号,购买数量),则关系购买的键为()。
A、客户号B、商品号C、客户号,商品号D、客户号,商品号,购买数量正确答案:C7、下列关于栈的叙述中正确的是()。
A、栈顶元素最先能被删除B、栈顶元素最后才能被删除C、栈底元素永远不能被删除D、以上三种说法都不对正确答案:A8、以下关于C语言的叙述中正确的是()。
A、C语言中的注释不可以夹在变量名或关键字的中间B、C语言中的变量可以在使用之前的任何位置进行定义C、在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D、C语言的数值常量中夹带空格不影响常量值的正确表示正确答案:A9、某二叉树的中序遍历为DCBAEFG,后序遍历为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。
二级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语言》模拟试题及答案第一部分:选择题1. 下列哪个不是C语言的关键字?A. switchB. intC. varD. return答案:C2. C语言中的字符常量用单引号括起来,字符串常量用双引号括起来。
A. 对B. 错答案:A3. 运算符“++”表示自加一,运算符“--”表示自减一。
A. 对B. 错答案:A4. 下面哪种变量定义方式是合法的?A. int 6_and_7 = 67;B. int ans1 = 1.5;C. float num1 = 3.14;D. char = 'c';答案:C5. 下面关于if语句的描述正确的是?A. if语句必须有else分支。
B. if语句判断条件可以是字符型变量。
C. if语句可以嵌套使用。
D. if语句不能使用逻辑运算符。
答案:C6. 下面哪种循环结构可以一次都不执行循环体?A. for循环B. while循环C. do-while循环D. 都不可以答案:B7. 下面哪个函数是用来从键盘获取一个字符并输出的?A. printf()B. scanf()C. gets()D. putchar()答案:D8. 下面哪个函数是用来比较两个字符串是否相等的?A. strcp()B. strcmp()C. strstr()D. sprintf()答案:B9. C语言中的数组下标是从0开始的。
A. 对B. 错答案:A10. 下面哪个运算符有最高的优先级?A. ++B. +C. *D. =答案:A第二部分:填空题1. 下列标识符是合法的。
(多选)() today_is_Friday()七夕节快乐() month-1() NAME() 3+5num答案:A和D2. int num = ____; 语句将会把变量num的值赋为10。
答案:103. 在for循环中,______ 语句用于控制循环条件。
答案:判断4. int num[5] = {1,2,3,4,5}; 语句定义了一个数组,该数组的元素个数为______。
国家二级C语言机试(C语言基础知识)模拟试卷2(题后含答案及解析)
国家二级C语言机试(C语言基础知识)模拟试卷2(题后含答案及解析)题型有:1. 选择题选择题1.下列叙述中错误的是A.C程序可以由多个程序文件组成B.一个C语言程序只能实现一种算法C.C程序可以由一个或多个函数组成D.一个C函数可以单独作为一个C程序文件存在正确答案:B解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。
在C语言中一个算法是用函数来实现的。
一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。
C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C 语言程序可以实现多种算法。
知识模块:C语言基础知识2.以下选项中关于程序模块化的叙述错误的是A.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序正确答案:B解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。
知识模块:C语言基础知识3.以下不能用于描述算法的是A.程序语句B.E.R图C.伪代码和流程图D.文字叙述正确答案:B解析:E-R图为实体.联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。
知识模块:C语言基础知识4.以下叙述中正确的是A.每个后缀为.c的C语言源程序都应该包含一个main函数B.在C语言程序中,main函数必须放在其他函数的最前面C.每个后缀为.c的C语言源程序都可以单独进行编译D.在C语言程序中,只有main函数才可单独进行编译正确答案:C解析:每一个C语言的文件或函数都可以单独编译,但只有main函数的才可以执行。
C语言2级试题及答案
C语言2级试题及答案1. 单项选择题题目1:以下哪个选项是C语言中定义一个整型变量的正确方式?选项A:int a;选项B:int a=;选项C:int a=0;选项D:int a=0.0;答案:AC2. 填空题题目2:在C语言中,表示逻辑与的运算符是____。
答案:&&3. 编程题题目3:请编写一个C语言程序,实现求两个整数的和,并打印结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}4. 简答题题目4:请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被看作是指向数组第一个元素的指针。
数组的每个元素可以通过指针运算来访问。
5. 综合应用题题目5:给定一个字符串,请编写一个C语言函数,计算并返回字符串中大写字母的数量。
答案:```c#include <stdio.h>#include <ctype.h>int countUppercase(const char *str) {int count = 0;while (*str) {if (isupper(*str)) {count++;}str++;}return count;}int main() {char str[] = "Hello World!";printf("大写字母的数量是:%d\n", countUppercase(str)); return 0;```。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案一、单项选择题(每题2分,30道题,共60分)1.下面的程序将输出:main(){float f;int x=1,y=2.5;f=x/y;printf("f=%1.1f,y=%#X", f, y );}A.f=0.0 , y=2B.f=0.5 , y=0X2C.f=0.0 , y=0X2D.f=0.5 , y=22.下面的程序将输出:#include "string.h"main(){int len;char str[]="a\b\04235\0";len=strlen(str);printf("%d",len);}A. 10B. 5C. 6D. 73.下面的程序将输出:main(){int a=0x31;char *str[]={"this is one. ","this is two. "};char ch;ch=++a-’0’;switch(ch){case 1: printf ("%s", str[0]);case 2: printf ("%s", str[1]);default: printf ("no way! ");}}A.this is one.B.this is two.C.no way!D.this is two.no way!4.下面的程序将输出:main(){int a[5]={1,2,3};int k,j;for(k=1;k<4;k++)a[k]++;for(j=0;j<5;j++) printf("%d ",a[j]); } A.1 3 4 1 0 B.2 3 4 1 0C.2 3 4 0 0D.1 3 4 0 05. 已知有下面两个变量,将数组a 的第2个单元赋值为1的C 语句是:int a[10]; int *p; p=a; A.a[2]=1; B.p[1]=1;C.*(p++)=1;D.*(++a)=1;6. 下面程序将输出: void add(int a) { a++; return; } main() { int k; k=3.4; add(k); printf("%d ",k); }A. 3.4B. 4.4C. 3D. 47. 下列循环结构中,不是..无限循环的是: A. for(i=1, s=0; ; i++)B. i=10; s=s+i ; while(1){i=i%10+1;if(i>10) break; } C. int i=0;D. i =100;do{ ++i ; }while(i>=0); while(++i%2) i++; 8. 若已知int a[3][4],*p;p=(int *)a;那么对数组a 的第2行第2列的正确引用是: A.a[2][2] B.p[5] C.a[5] D.p[1][1] 9. 已知:int (*p)[20]; 且p 的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040 10. 若有说明int a[2][2];那么,下面正确的C 赋值语句是: A.a=2;B.a[1]=2;C.a[1]={1,2};D.a[0][1]=a[1][0]; 11. 设x 为int 型变量,则执行以下语句后,x 的值为x=10; x+=x-=x-x; A .10 B .20C .40D .30 12. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y )的值是: A .0B .语法错C .1D ."假"13. 下面能正确进行字符串...赋值操作的语句是: A .char s[5]={"ABCDE"}; B .char s[]={'A','B','C','D','E'}; C .char *s ;s="ABCDEF";D .char *s ;scanf ("%s",s );14. 已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.A.(a+6) B.*(&a[0]+6) C.a[2][2] D.*(&a[0][0]+6) 15.设有以下说明和定义:typedef union { long i; int k[4]; char c; }DATE;struct date { int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A.26 B.30 C.18 D.816.设有如下定义:int *(*ptr)();则以下叙述中正确的是A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针17.若二维数组a 有m列,则在a[i][j]之前的元素个数为______A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1 18.以下程序运行后,输出结果是A.13 B.51 C.11 D.53 int d=1;fun (int p){int d=5;p=d;printf("%d",p);}main(){int a=3;fun(a);d=a;printf("%d\n",d);}19.以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为A.4 B.7 C.6 D.5#include<stdio.h>#include<string.h>func(char str[ ] ){ int num =0;while(*(str+num)!='\0') num++;return(num);}main( ){char str[10],*p=str;gets(p); printf("%d\n",func(p));}20.执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A.15 B.14 C.13 D.12 21.已知定义了两个结构体变量,下面是正确的语句是:struct {int x; char name[10]; float mark;} S1,S2;A. S1={5, ”yang”, 90.5};B. S1=S2;C. S1.x=S2.x ; = ; S1.mark=S2.mark;D. strcpy(S1,S2);22.下面这段程序运行的结果是:int a=0x4145;char *p;p=(char *)&a;*p+=1;printf(“%X” , *p);A. 46B. 42C.4146D.424523.下面这段程序运行的结果是:char str[ ]=”%#X”;int a=50;printf(str,a++);A.50B.0X33C.0X32D.有语法错24.下面哪个语句是函数的原型声明A. int (*f)(int a , int b);B. int f(int a , 5);C. int f(int a , int b);D. int f(int a=5, int b=6);25.已知int a=0XF11F , b; 执行完下面的操作后,a的值是多少?b=(a&0xFF00)>>4;A. 0X0FF1B. 0XF11FC.0XFF10D. 0XFFF126.有以下程序:int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是。
A.10B.9C.7D.827.设有以下语句:typedef struct S{ int g; char h;} T;则下面叙述中正确的是。
A.可用S定义结构体变量B.可以用T定义结构体变量C.S是struct类型的变量D.T是struct S类型的变量28.有以下程序:main(){ unsigned char a,b;a=4|3;b=4&3;printf("%d %d\n",a,b);}执行后输出结果是。
A. 7 0B.0 7C.1 1D.43 029.有以下程序void sort(int a[],int n){ int i,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;}}main(){ int k[10]={1,2,3,4,5,6,7,8,9,10},i;sort(k,10);for(i=0;i<10;i++) printf("%d,",k[i]);printf("\n");}其输出结果是。
A.1,2,3,4,5,6,7,8,9,10, B .10,9,8,7,6,5,4,3,2,1,C.9,2,7,4,5,6,3,8,1,10, D.1,10,3,8,5,6,7,4,9,2,30.有以下程序:void f(int a[],int i,int j){ int t;if(i<j){ t=a[i]; a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){ int i,k[5]={1,2,3,4,5};f(k,0,4);for(i=0;i<5;i++) printf("%d,",k[i]); printf("\n");}执行后输出结果是。