c语言题库2(计算机二级)
c语言二级考试试题及答案

c语言二级考试试题及答案C语言二级考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中数组的描述,正确的是:A. 数组名是一个变量名B. 数组名是一个常量C. 数组名是一个指针D. 数组名是一个函数答案:B2. 以下哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable name答案:C3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World" + "Hello World"D. "Hello\nWorld"答案:D4. C语言中,以下哪个不是标准输入输出库函数?A. printf()B. scanf()C. getchar()D. puts()答案:C5. 下列哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. C语言中,以下哪个是正确的函数定义?A. int function_name(int x, int y) { /* ... */ }B. int function_name(int x, int y);C. int function_name(int x, y) { /* ... */ }D. int function_name(int x; int y) { /* ... */ }答案:A7. 在C语言中,以下哪个是正确的递归函数调用?A. function_name(x)B. function_name(x, y)C. function_name(function_name(x))D. function_name(&x)答案:C8. 在C语言中,以下哪个是正确的结构体定义?A. struct person { int age; char name[50]; };B. struct person { int age; char name[50] }C. struct person { int age; char name[50]; }D. struct person { int age; char name[50] } person;答案:A9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共10分)1. 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语言笔试试题及答案一、选择题1. 以下关于C语言的描述中,正确的是(A)A. C语言是一种结构化程序设计语言B. C语言是面向对象的程序设计语言C. C语言是一种解释型语言D. C语言是一种高级汇编语言答案:A2. 在C语言中,以下哪个选项是非法的整型常量?(D)A. 012B. 0x123C. 0XabcD. 0123答案:D3. 若变量已正确定义并赋值,以下正确的表达式是(C)A. a = b ++ + 1;B. a = b ++ = a++;C. a = b + b++;D. a = ++b + ++b;答案:C4. 在C语言中,以下哪个函数用于输出字符?(B)A. printfB. putcharC. putcharcD. putchart答案:B5. 已知 int a = 5, b = 3;,以下哪个选项的结果为1?(D)A. a % bB. a / bC. a + bD. a - b答案:D二、填空题1. 在C语言中,一个int类型的数据在内存中占______个字节。
答案:42. C语言中,逻辑运算符“或”用______表示。
答案:||3. 若定义 int a = 10, b = 20;,则执行语句 a += b -= a; 后,b的值为______。
答案:104. 在C语言中,函数的返回值类型为void时,表示该函数______。
答案:无返回值5. 在C语言中,以下函数的返回类型为______。
int max(int a, int b) {return (a > b) ? a : b;}答案:int三、判断题1. C语言中的数组名可以作为指针使用。
(正确)2. 在C语言中,静态存储区的数据在程序运行期间一直存在。
(正确)3. 在C语言中,结构体是一种用户自定义的数据类型。
(正确)4. 在C语言中,函数的参数传递都是按值传递的。
(错误,部分按引用传递)5. 在C语言中,文件操作完成后必须关闭文件,否则可能导致数据丢失。
计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C3. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. 若有定义:int a = 5;,则执行以下语句后变量a的值是多少?```ca += (a / 2) + 1;```A. 8C. 6D. 5答案:B5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r+"B. "w+"C. "a+"D. "b+"答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. !=答案:A7. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. return答案:C8. 若有定义:char ch = 'A';,则执行以下语句后变量ch的ASCII 值是多少?```cch = ch - 'a' + 'A';```B. 97C. 66D. 98答案:A9. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A10. 下列哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. /* This is a comment */D. # This is a comment答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。
计算机二级考试c语言考试真题及答案

计算机二级考试c语言考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A2. 若有定义:int a=5, b=10; 则以下哪个表达式的值不为5?A. a+bB. a-bC. a*bD. a/b答案:C3. 在C语言中,以下哪个选项不是标准输入输出库函数?A. printf()B. scanf()C. puts()D. strcat()答案:D4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B5. 若有定义:char c='A'; 则以下哪个表达式的值不为65?A. cB. 'A'C. "A"D. '\101'答案:C6. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "ABCDE";B. char str[5] = {'A', 'B', 'C', 'D', 'E'};C. char str[5] = {'A', 'B', 'C', 'D'};D. char str[5] = "ABC" "DE";答案:D8. 若有定义:int x=10; 则以下哪个表达式的值不为10?A. x++B. x--C. ++xD. --x答案:D9. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][] = {1, 2, 3};C. int array[3][];D. int array[2, 3];答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码。
计算机二级考试真题及答案c语言

计算机二级考试真题及答案c语言一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在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语言试题及答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项是合法的标识符?A. 2abcB. abc123C. _abcD. abc$答案:C2. 在C语言中,下面哪个运算符具有左结合性?A. 赋值运算符B. 逻辑运算符C. 位运算符D. 关系运算符答案:A3. 下面哪个函数用于实现字符串的复制?A. strcpyB. strcatC. strlenD. strcmp答案:A4. 下面哪个选项是正确的整型常量的表示方法?A. 1234BB. 0x1234C. 1234DD. 01234答案:D5. 下面哪个选项是合法的实型常量的表示方法?A. 123.B. 123.C. 123.D. 123.答案:C6. 在C语言中,下面哪个函数用于实现字符串的连接?A. strcpyB. strcatC. strlenD. strcmp答案:B7. 下面哪个选项是正确的关于一维数组的描述?A. 数组名是一个指向数组首元素的指针B. 数组名是一个指向数组首元素的指针C. 数组名是一个指向数组首元素的指针D. 数组名是一个指向数组首元素的指针答案:A8. 下面哪个选项是正确的关于二维数组的描述?A. 二维数组可以看作是多个一维数组的组合B. 二维数组可以看作是多个一维数组的组合C. 二维数组可以看作是多个一维数组的组合D. 二维数组可以看作是多个一维数组的组合答案:A9. 在C语言中,下面哪个函数用于实现字符串的比较?A. strcpyB. strcatC. strlenD. strcmp答案:D10. 下面哪个选项是合法的C语言语句?A. if(条件) {B. while(条件)C. do {D. }答案:D二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的存储空间为_____个字节。
答案:42. C语言中,定义一个整型变量的一般形式为_____。
答案:int 变量名;3. C语言中,定义一个实型变量的一般形式为_____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1. 在C语言中,不合法的实型常量是()。
A. -0.123B. -.123C. -1.23e-1D. -123e-3.02. 设有说明语句int i,j;,则表达式i>=j||i<j的值是()。
A. 视i、j的具体值而定B. FALSEC. 4TRUED.13. 以下程序的运行结果是()。
main(){ unsigned a = 0x3ef, b;b = a << 2;printf("%x,%x\n", a, b);}A. 3ef,fb B, 3ef,fbc C fbc,3ef D fbc,fbc4. 设int a,b;,用语句scanf('%d%d",&b);输入a、b值时,不能作为输入数据分隔符的是()。
A. 空格B. ,C. 回车D. tab5. 以下程序的运行结果是()。
main(){ int i=3,j=2,k;k=i+j;{int k=8;if(i==3) printf("%2d",k);else printf("%2d",j);}printf("%2d%2d\n",i,k);}A.8 3 5B.8 3 8C.3 8 3D. 5 8 36. 以下程序的运行结果是()。
void main(){ int a=1;switch(a){case 1: printf("aaaa\n");case 2: printf("bbbb\n"); break;default: printf("cccc\n");}}A.aaaaB. aaaaC. aaaaD. aaaabbbb bbbb cccccccc7. 以下程序的运行结果是()。
main(){ int a,b,c,n=13;printf(" A B C\n");for(a=1;a<=n;a++)for(b=1;b<=n;b++)for(c=b;c<=n;c++)if(a*a==b*b+c*c)printf("%3d%3d%3d\n",a,b,c);}A. A B CB. A B CC. A B CD. A B C5 3 4 3 5 4 4 5 3 5 4 310 6 8 6 10 8 8 10 6 10 8 613 5 12 5 13 12 12 13 5 13 12 58. 以下程序的运行结果是()。
main(){ int i,s;i=0;s=1;do{s/=s+1;i++;}while(i<=10);printf("%2d%2d\n",i,s);}A. 12 2B. 11 2C. 10 0D. 11 09. 下列do...while循环的循环次数是()。
int i=5;do{printf("%d\n",i--);i--;}while(i!=0)。
A. 0B. 2C. 5D. 死循环10. 设int a[][4]={0,0};,则下列描述错误的是()。
A. 数组a的每个元素的值为0B. 二维数组a的第一维大小为1C. 数组a有4个元素D. 只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定11. 以下程序的运行结果是()。
main(){ int array[4][4];int i,j;for(i=0;i<4;i++)for(j=0;j<4;j++) array[i][j]=i+j;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3) array[i][j]=0;for(j=0;j<4;j++) printf("%2d",array[2][j]);printf("\n");}A. 2 0 0 5B. 1 0 0 4C. 0 1 2 0D. 0 4 5 012. 以下程序的运行结果是()。
main(){ int i;char aa[][3]={'a','b','c','d','e','f'};char (*p)[3]=aa;for(i=0;i<2;i++)if(i==0) aa[i][i+1]=**(p++);printf("%c\n",**p);}A. aB. bC. cD. d13. 以下关于指针概念的叙述中,错误的是()。
A. 一个指针变量只能指向同一类型的变量B. 一个变量的地址称为该变量的指针C. 两个同类型的指针变量可以作加减运算D. 任何指针变量都可以与空指针NULL进行比较14. 以下程序的运行结果是()。
age(n)int n;{ int c;if(n==1) c=10;elseif(n%2==0) c=age(n-1)+2;else c=age(n-1)+3;return(c);}main(){ printf("%d\n",age(5)); }A. 18B. 20C. 10D. 2115. 以下程序的运行结果是()。
main(){ void change_p();int *p,a[]={1,4,7,10};p=&a[1];change_p(p);printf("%d\n",*p);}void change_p(int *pi){ *pi +=2;pi +=2;*pi +=2;}A. 7B.8C. 5D. 616. 在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是()。
A. intB. charC. unsignedD. long17. 以下程序的输出结果是()。
main(){ union example{ struct{ int x;int y;} in;int a[2];} e={ 0, 0 };e.a[0]=1; e.a[1]=2;printf("%d,%d\n",e.in.x,e.in.y);}A. 2,1B. 0,0C. 1,2D. 0,118. 以下程序运行后,输出的结果是()。
fun(char *w){ char t, *s1, *s2;for(s1=w, s2=w+strlen(s1)-1; s1<s2; s1++, s2--){ t = *s1;*s1 = *s2;*s2 = t;}}main(){ char *p="12345";fun(p);puts(p);}A.12345B. 54321C. 15115D. 5155119. 以下程序的运行结果是()。
#define M(x,y) x*ymain(){ int a=3,b=2,s1,s2,f12();s1=M(a+b,a-b);s2=M(a-b,a+b);printf("%d,%d,%d,%d\n",s1,s2,f12(a+b,a-b),f12(a-b,a+b));}f12(int x,int y){ return(x*y); }A. 7,-1,5,5B. 5,5,7,-1C. 5,5,5,5D. 7,-1,7,-120. 以下程序的可执行文件名是file.exe。
main(argc,argv)int argc;char *argv[];{ int i;for(i=2;i<argc;i++)printf("%s%c",argv[i],(i<argc-1)?' ':'\n');}现在DOS 命令行输入:file My C Language and Programming<回车>,其输出结果是( )。
A. C Language and ProgrammingB. My C Language and ProgrammingC. MyCLanguageandProgrammingD. file My C Language and Programming二、改错题1. 程序cmody021.c 的功能是:输出如下所示图形:*********************2. 程序cmody022.c 用以输出将5角钱换成1角和5分硬币,且每种硬币的个数大于0的各种组合。
三、填空题1. 补充程序ccon021.c ,使其计算满足下式的一位整数A 和B 的值。
A B× B A4 0 32. 补充程序ccon022.c ,使其实现输入若干整数,统计其中大于零和小于零的个数。
以零结束输入。
四、程序题1. 打开考生文件夹中的cprog021.c ,完成其中的函数fun ,该函数的数学表达式是:500log 8.1cos )(105++=x x x fun 例如:fun(0.96)=0.3162. 打开考生文件夹中的cprog012.c ,完成其中的函数fun2(int a[], int n, int b[], int c[]),实现:1) 将数组a 中大于-20的元素,依次存放到数组b 中;2) 将数组b 中的元素按照从小到大的顺序存放到数组c 中;3) 函数返回数组b 中的元素个数。