计算机二级C语言考试编程题题库

合集下载

全国二级计算机C语言程序设计题库

全国二级计算机C语言程序设计题库

一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是。

A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由。

A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是。

A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是。

#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是。

A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是。

#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是。

#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是。

c语言二级考试试题及答案

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语言二级考试题库及详解答案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语言考试试题题库

国家计算机二级c语言考试试题题库(1)二级C是区分大小写的,在仔细阅读程序后,发现Null是一个错误的标识符。

给a指针赋空值,空值的宏定义符号是NULL,因此应该改为:a = NULL;(2)按照语义是判断r和p指针是否相等,显然是错误的。

因为本题是判断子串t是否在串s中出现,应该判定r 和p所指内存中字符是否相同,因此应该改为if(*r==*p)。

三、编程题请编写函数fun,其功能是:比较两个字符串的长度,函数返回较长的字符串。

若两个字符串长度相等,则返回第1个字符串(不得使用C语言提供的求字符串长度的函数)。

例如,输入beijingshijiazhuang(为回车键),函数将返回shijiazhuang。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#includechar *fun(char *s,char *t){ }main(){char a[20],b[10],*p,*q;int i;printf('Input 1th string: ');gets(a);printf('Input 2th string: ');gets(b);printf('%s',fun(a,b));}【答案及解析】(1)本题主要考查for循环语句的概念。

根据题意知,需要使用两个循环来实现,即第1个for循环的作用是求字符串s中字符的个数;第2个for循环的作用是求字符串t中字符的个数。

然后进行比较即可。

由于任何for循环都要控制一条语句,因此在每个for循环条件后面必须要加一个分号。

(2)按上述解析写出的函数是:char *fun(char *s,char *t){int i,j;for(i=0;s[i]!='\0';i++);/*求字符串s的长度*/for(j=0;t[j]!='\0';j++);/*求字符串t的长度*/if(i>=j)return s;elsereturn t;}第二套:题库名:程序设计基础总试题库.mdb 题数:167题1、在语句cin>>data;中,cin是 (判断题)所属章节:4.C语言二级考试题库难度系数:1A. C++的关键字B. 类名C. 对象名D. 函数名说明: 此写解题要点或对题目做说明。

(完整版)计算机二级C语言考试编程题题库

(完整版)计算机二级C语言考试编程题题库

计算机c语言编程题库1、求100之内自然数中最大的能被17整除的数。

void main(){ int i;for(i=100;i>0;i--)if(i%17==0)break;printf("%d\n",i);}2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。

void main(){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%d\n",a,b,c);}}}3、计算并输出200-400之间不能被3整除的整数的和。

void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%d\n",sum);}4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。

void main(){ int i,n=0,sum=0;int a[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]>=0){ sum=sum+a[i];n++;}printf("非负个数是%d,sum=%d\n",n,sum);}5、求100之内自然数中偶数之和。

void main(){ int i,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%d\n",sum);}6、输入5个数,求和并输出。

要求编写求和的函数。

计算机二级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语言试题及答案一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是面向对象编程语言B. C语言是一种解释性语言C. C语言是一种编译性语言D. C语言主要用于网页开发2. C语言中的数组下标是从几开始计数的?A. 0B. 1C. -1D. 由用户指定3. 下列代码中,输出的结果是什么?```cint a = 10;int b = 5;printf("%d", a % b);```B. 5C. 2D. 04. 下列关于函数的说法中,正确的是:A. 函数只能在主函数中调用B. 函数可以在任何地方调用C. 函数只能接收一个参数D. 函数不能返回值5. 下列代码中,循环体会执行几次? ```cint i;for(i = 0; i < 5; i++) {printf("%d ", i);}```A. 0次B. 4次D. 6次二、填空题1. C语言中,用于定义常量的关键字是 __________。

2. 下列代码中,空格处应该填入什么值才能使程序输出结果为20?```cint a = 10;int b = __________;printf("%d", a * b);```3. 下列代码中,空格处应该填入什么运算符才能使程序输出结果为1?```cint a = 5;int b = 4;printf("%d", a ________ b);```三、编程题1. 编写一个程序,要求用户输入一个整数n,然后输出1到n之间所有偶数的和。

2. 编写一个函数,实现计算两个整数之间的最大公约数(GCD)的功能,并在主函数中调用该函数。

3. 编写一个程序,定义一个字符串数组,其中有5个元素,每个元素是一个字符串。

然后使用循环输出该数组中所有的字符串内容。

四、综合题1. 下面是一个简化的学生成绩管理程序的代码,有一些错误,请帮助找出并修复错误。

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

计算机c语言编程题库1、求100之内自然数中最大的能被17整除的数。

void main(){ int i;for(i=100;i>0;i--)if(i%17==0)break;printf("%d\n",i);}2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。

void main(){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%d\n",a,b,c);}}}3、计算并输出200-400之间不能被3整除的整数的和。

void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%d\n",sum);}4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。

void main(){ int i,n=0,sum=0;int a[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]>=0){ sum=sum+a[i];n++;}printf("非负个数是%d,sum=%d\n",n,sum);}5、求100之内自然数中偶数之和。

void main(){ int i,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%d\n",sum);}6、输入5个数,求和并输出。

要求编写求和的函数。

void main(){ int b(int x[],int n);int sum=0;int a[5];int i;printf("请输入5个数:");for(i=0;i<5;i++)scanf("%d",&a[i]);sum=b(a,5);printf("sum=%d\n",sum);}int b(int x[],int n){ int i,sum=0;for(i=0;i<5;i++)sum=sum+x[i];return sum; }7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。

void main(){ int i,sum=0;for(i=1;i<=99;i=i+2)sum=sum+i*(i+1)*(i+2);printf("%d\n",sum);}8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。

void main(){ int i,n;char b[20];printf("请输入字符串:");gets(b);n=strlen(b);for(i=0;i<n;i++)if(b[i]=='a')b[i]='*';for(i=0;i<n;i++)printf("%c",b[i]);printf("\n");}9、编写程序,将一个一维数组的元素逆序存放并输出。

例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。

void main(){ int i;int a[5];printf(“请输入5个数:”);for(i=0;i<5;i++)scanf(“%d”,&a[i]);for(i=0;i<2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<5;i++)printf("%d ",b[i]);printf("\n");}11、编程判断输入的整数的正负性和奇偶性。

如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出jvoid main(){ int a;printf(“请输入一个数:”);scanf(“%d”,&a);if(a>0)printf("z\n");if(a<0)printf("f\n");if(a%2==0)printf("o\n");if(a%2!=0)printf("j\n");}12、计算并输出1-200之间不能被5整除的整数的和。

void main(){ int i,sum=0;for(i=1;i<=200;i++)if(i%5!=0)sum=sum+i;printf("%d\n",sum);}13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。

void main(){ int i,a,n;long int sum=0,st=0;printf("请输a和n:");scanf("%d%d",&a,&n);for(i=1;i<=n;i++){ st=st+a;sum=sum+st;a=a*10;}printf("%ld\n",sum);}14、输入5个数,求它们中最大值和平均值并输出。

void main(){int a[5];int i,j,max,sum=0;float average;printf("请输入5个数:");for(i=0;i<5;i++)scanf("%d",&a[i]);max=a[0];for(j=0;j<5;j++){sum=sum+a[j];if(max<a[j])max=a[j];}printf("max=%d,average=%f\n",max,average);}15、输出所有200-400之间能被3整除且个位数字为6的整数。

void main(){int i;for(i=200;i<=400;i++)if((i%3==0)&&((i-6)%10==0))printf("%d\n",i);printf("\n");}16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。

void main(){ int i,j,n1;char a[20];printf("请输入字符串:");gets(a);n1=strlen(a);for(i=0;i<n1;i++)if(a[i]!='a')printf("%c",a[i]);printf("\n");}17、计算并输出200-400之间不能被7整除的整数的和。

void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%7!=0)sum=sum+i;printf("sum=%d\n",sum);}18.计算并输出200-400之间不能被5整除的整数的和。

void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%5!=0)sum=sum+i;printf("sum=%d\n",sum);}19、从键盘输入10个数,统计非正数的个数,并计算非正数的和void main(){ int i,n=0,sum=0;int a[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]<=0){ sum=sum+a[i];n++;}printf("非正个数是%d,sum=%d\n",n,sum);}20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。

void main(){ int i,n;char a[20];printf("请输入字符串:");gets(a);n=strlen(a);for(i=0;i<n;i++)if(a[i]>='A'&&a[i]<='Z')a[i]=a[i]+32;for(i=0;i<n;i++)printf("%c",a[i]);printf("\n");}21、打印所有的水仙花数。

所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。

例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。

void main(){ int a,b,c,s;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++)if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c){s=a*100+b*10+c;printf("%d\n",s);}}}}22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。

求当它第10次落地时,共经过了多少米,第10次反弹多高?void main(){ int i;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;}printf("%f,%f\n",sum,h);}23、输出所有0-200之间能被3整除且个位数字为6的整数。

void main(){int i;for(i=0;i<=200;i++)if((i%3==0)&&((i-6)%10==0))printf("%d\n",i);printf("\n");}24、输入一个正整数,输出它的阶乘。

void main(){ int i,J=1,n=10;printf(“请输入一个正整数:”);scanf(“%d”,&n);for(i=1;i<=n;i++)J=J*i;printf("%d 的阶乘是:%d\n",n,J);}25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。

相关文档
最新文档