C语言笔试练习题参考程序

合集下载

C语言模拟笔试题附答案

C语言模拟笔试题附答案

C语言模拟笔试题附答案C语言模拟笔试题(附答案)以下是店铺为您准备的C语言模拟笔试题,希望对您有所帮助!更多内容请关注店铺!1.编写函数fun(char*str),找出字符串str中ASCII值最大的字符。

主程序调用函数fun()求字符串中的最大字符并输出。

主程序如下:void main(){ char source[1024];4.一小球从一百米的高度自由落下,每次落地后反跳回原来的一半,再落下。

计算小球在第十次落地时,共经过多少米?第十次反弹多高?printf(“请输入一行英文字符串:\n”);gets(source);printf(“最大的字母是:%c”,fun(source));}char fun(char*str){ }2.写出下面程序的`输出结果:main(){ int h,j,k;5.编写函数fact(int n),计算n!编写函数sum(int n),调用函数fact(),计算:1!+2!+3!+……+n!。

编写主程序 main(),调用sum()函数计算:1!+2!+3!+……+n!。

for(h=0;h<=3;h++){ for(j=0;j<=2-h;j++) printf(" ");for(k=0;k<=2*h;k++) printf("*");printf("\n");}for(h=0;h<=2;h++){ for(j=0;j<=h;j++) printf(" ");for(k=0;k<=4-2*h;k++) printf("*");printf("\n");}}6.小张,小李,小王,小刘共买苹果144个。

其中,小张买的苹果比小李多10个,比小王多26个,比小六多32个。

问小张买了多少个苹果?()A. 73B. 63C. 53D. 43E. 273. 写出下面程序的输出结果:void main(){ int s=0,k;for(k=7;k>=0;k–){switch(k){case 1:case 4:case 7:s++;break;case 2:case 3:case 6:break;case 0:case 5:s+=2;break;}}printf(“s=%d”,s);}下载全文。

C语言编程测试题(含答案)范本

C语言编程测试题(含答案)范本

C语言编程测试题(含答案)范本C语言编程测试题(含答案)范本一、题目描述编写一个C程序,实现以下功能:1. 接受用户输入一个整数n,并计算从1到n的累加和。

2. 打印出这个累加和的值。

二、解题思路为了实现以上功能,我们可以使用循环结构,在每次循环中将当前数字与之前的累加和相加,并将结果保存在累加和中,直到遍历完从1到n的所有数字。

最后,打印出累加和的值。

三、编程实现以下是此题的C语言程序实现:```c#include <stdio.h>int main() {int n, i, sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (i = 1; i <= n; i++) {sum += i;}printf("从1到%d的累加和为:%d\n", n, sum);return 0;}```四、示例运行以下是一个示例运行过程:```请输入一个整数n:10从1到10的累加和为:55```五、总结通过本次编程测试题,我们学习了如何使用C语言编写一个求从1到n的累加和的程序。

这个程序利用循环结构遍历从1到n的所有数字,并使用sum变量保存累加和的结果。

我们可以根据需要修改程序中的n值,来计算不同范围的累加和。

六、答案解析本题的答案是一个简单的C语言程序,通过循环和累加实现从1到n的求和功能。

这个程序的关键在于正确使用循环来遍历数字并实现累加操作。

通过理解循环结构和变量的使用,我们可以更好地掌握C语言的编程技巧。

编程测试题是提高编程实践能力的重要方法,希望大家继续努力学习,提高自己的编程水平。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

1、编程题1.输入2个整数,求两数的平方和并输出。

#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

c经典笔试题

c经典笔试题

c经典笔试题C语言经典笔试题通常涵盖了基本的语法知识、指针、数组、字符串、结构体、文件操作等内容。

以下是一些C语言经典笔试题,每个问题附有详细的答案解析。

1. 下面代码的输出是什么?```c#include<stdio.h>int main(){int x = 10;if(x == 10)printf("x is equal to 10");elseprintf("x is not equal to 10");return 0;}```答案解析:该代码会输出"x is equal to 10"。

因为x的值为10,所以if语句条件为真,执行第一个printf语句。

2. 下面代码的输出是什么?```c#include<stdio.h>int main(){int x = 5;int result = x++ + ++x;printf("result = %d", result);return 0;}```答案解析:该代码会输出 "result = 12"。

x++ 的值为5,++x 的值为7,所以result的值为5 + 7 = 12。

3. 下面代码的输出是什么?```c#include<stdio.h>int main(){int i = 5;printf("%d %d %d", i++, ++i, i++);return 0;}```答案解析:该代码的输出结果是不确定的。

因为在同一个表达式中多次使用 i++ 或 ++i ,会导致结果不确定。

4. 下面代码的输出是什么?```c#include<stdio.h>int main(){int i, a[] = {1, 2, 3, 4, 5};for(i=0; i<=4; i++)printf("%d ", a[i]);return 0;}```答案解析:该代码会输出 "1 2 3 4 5"。

c语言常见笔试题

c语言常见笔试题

C语言常见笔试题
以下是一些常见的C语言笔试题,这些题目涵盖了基本的语法、数据类型、流程控制等方面。

请注意,这只是一小部分可能出现在C 语言笔试中的题目,实际的笔试可能会根据岗位的不同涵盖更广泛的主题。

基本语法:
编写一个程序,输出"Hello,World!"。

变量与数据类型:
声明一个整数变量并初始化为10,输出该变量的值。

运算符:
编写一个程序,计算并输出两个整数的和、差、积、商和余数。

条件语句:
编写一个程序,输入一个整数,判断它是否是正数、负数还是零,并输出相应的提示信息。

循环结构:
使用循环结构输出1到10的所有偶数。

数组:
声明一个整数数组,存储5个成绩,并计算平均值。

字符串处理:
编写一个程序,输入一个字符串,然后输出字符串的长度。

函数:
编写一个函数,接受两个整数参数,返回它们的和。

指针:
声明一个整数变量,然后声明一个指向该变量的指针,并通过指针修改变量的值。

结构体:
声明一个表示学生的结构体,包括学生的姓名、学号和成绩,并输出这些信息。

文件操作:
编写一个程序,打开一个文件,读取文件中的内容并输出到屏幕上。

这些问题涵盖了C语言中的一些基本概念,包括语法、数据类型、流程控制、函数、指针等。

在准备C语言笔试时,建议练习这些题目以熟悉常见的编程任务。

C语言笔试练习题1

C语言笔试练习题1

第一章 C语言程序概述一、选择题。

1、C语言程序的基本单位是(A)A)函数 B)过程 C)子程序 D)子例程2、以下选项中正确的整型常量是(B)A)34.1 B) -80 C) 2,000 D)1 2 33、在C程序中,可以作为用户标识符的一组标识符是(B)A)void define WORD B) as_b3 _224 ElseC) Switch -wer case D) 4b DO SIG4、在TURBO C中,int类型变量所占的字节数是(B)A)1 B)2 C)3 D)45、以下选项中不正确的实型常量是(A)A)123E+1.5 B) 1e4 C)3.640E-1 D)0.356、以下选项中合法的C语言赋值语句是(D)A)a=b=34 B) a=34,b=34 C) --i; D) m=(int)(x+y);7、以下(C)是不正确的转义字符。

A)'\\' B) '\'' C) '020' D) '\0'8、以下所列的C语言常量中,错误的是 (B)A) 0xFF B) 1.2e0.5 C) 2L D) ‘\72’二、填空题。

1、用字符串的形式表示China____”china”________。

2、C程序执行过程生成的3种文件及扩展名为___源文件.C____,___目标文件.OBJ_____,____可执行文件.EXE____。

3、C语言中的标识符只能由3种字符组成,他们是___字母____,____数字___和____下划线____。

第二章 C语言基本数据类型与表达式一、选择题。

1、在C语言中,要求参加运算的数必须是整数的运算符是(A)A)% B)/ C)! D)*2、若已定义x和y为 double类型,则表达式“x=1.0,y=x+3/2”的值是(C)A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是(B)A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为(B)(x+y)%2+(int)a/(int)bA)1.0 B)1 C) 2.0 D)25、若x和 n均是 int型变量,且 x的初值为12,n的初值为5 ,则执行下面表达式后x 的值为(A)x%=(n%=2)A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为(C)A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的(D)A)#include<stdio.h> B) #include<stdio.h>main( ) main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>main( ) main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句(B)a=-2L;printf(“%d\n”,a);A)赋值不合法 B)输出值为-2 C)输出为不确定值 D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是(B)A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为(A)int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是(D)#include<stdio.h>main( ){ int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A)3 4 B) 4 2 C) 4 3 D) 3 312、以下程序的输入结果为(C)main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是(C)#include <stdio.h>main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):(b));}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是(A)sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是(D)A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知 int j,i=1;执行语句j=-i++;后,j的值是(C)A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是( A)A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是 (A)A) %= B) / C) = D)〈=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A)A)12353514 B)12353513 C)12343514 D)1234351320、有以下程序main( ){ int m=0256,n=256;printf("%o %o\n",m,n);}程序运行后的输出结果是 (C)A)0256 0400 B)0256 256 C)256 400 D)400 400二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是___6___,变量i的值是____7___。

完整版C语言程序设计练习题含程序及参考答案

完整版C语言程序设计练习题含程序及参考答案

完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。

```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。

```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。

```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n){if (n <= 1){return false;}for (int i = 2; i * i <= n; i++){if (n % i == 0){return false;}}return true;}int main(){int n;printf("请输入一个整数n:"); scanf("%d", &n);if (isPrime(n)){printf("%d是素数。

c语言经典笔试题及答案详解

c语言经典笔试题及答案详解

c语言经典笔试题及答案详解1. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {int a = 1;int b = 2;int c = a + b;printf("%d", c);return 0;}```答案:输出是3。

2. 题目:如何使用指针交换两个变量的值?答案:可以使用以下代码:```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a = 10;int b = 20;swap(&a, &b);printf("a = %d, b = %d\n", a, b); return 0;}```输出将是:a = 20, b = 10。

3. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {char *str = "Hello, World!";printf("%c", *(str + 7));return 0;}```答案:输出是W。

4. 题目:以下代码段的输出是什么?```c#include <stdio.h>int main() {int x = 10;if (x = 20)printf("x is 20\n");elseprintf("x is not 20\n");return 0;```答案:输出是x is 20。

注意这里if语句中使用了赋值运算符(=)而不是比较运算符(==),因此x被赋值为20,条件判断为真。

5. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {int a = 2;int b = 4;int c = a & b;printf("%d", c);return 0;}```答案:输出是0。

C语言笔试集含答案.doc

C语言笔试集含答案.doc

C语言笔试集(含答案)下面的题目必须全部答对才给分:1、如何在c中初始化一个字符数组。

2、如何在C中为一个数组分配空间。

3、如何初始化一个指针数组。

4、如何定义一个有10个元素的整数型指针数组。

5、s[10]的另外一种表达方式是什么。

6、版本中支持哪几种编程语言。

7、要使用CHAR_BIT需要包含哪个头文件。

8、对(-)取整是多少?9、如何让局部变量具有全局生命期。

10、C中的常量字符串应在何时定义?11、如何在两个.c文件中引用对方的变量。

12、使用mal loc之前需要做什么准备工作。

13、r e al loc函数在使用上要注意什么问题。

14、s trtok函数在使用上要注意什么问题。

15、g ets函数在使用上要注意什么问题。

16、C语言的词法分析在长度规则方面采用的是什么策略?17、a+++++b所表示的是什么意思?有什么问题?18、如何定义Bool变量的TRUE和FALSE的值。

19、C语言的con st的含义是什么。

在定义常量时,为什么推荐使用co nst,而不是#define。

20、C语言的volati le的含义是什么。

使用时会对编译器有什么暗示。

这部分是A NSI C的一些问题,题目的前提是必须都答对,看似很变态,但是细想一下,这些都是最基础的,虽然我们在使用他们的时候会犯这样那样的错误,但是最终目的是不犯错误,不是么,那么好,从最基础的开始。

1、如何在C中初始化一个字符数组。

这个问题看似很简单,但是我们要将最简单的问题用最严谨的态度来对待。

关键的地方:初始化、字符型、数组。

最简单的方法是chararray 口;。

这个问题看似解决了, 但是在初始化上好像还欠缺点什么,个人认为:chararra y ⑸二{' 1’,' 2 ' , ' 3’,' 4 ' , ' 5’ };或者 c hara rray[5 ] = { " 1 2345 " };或者ch arar ray[2] [ 10]={ “China ” , " Beijing" };也许更符合“初始化”的意思。

c语言程序试题及答案

c语言程序试题及答案

c语言程序试题及答案试题一:编写一个C程序,实现输入两个整数并输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```试题二:编写一个C程序,实现输入一个字符,并判断该字符是否为大写字母。

```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:\n");scanf("%c", &ch);if(ch >= 'A' && ch <= 'Z') {printf("该字符是大写字母。

\n");} else {printf("该字符不是大写字母。

\n");}return 0;}```试题三:编写一个C程序,实现输入一个正整数,计算并输出它的阶乘。

```c#include <stdio.h>int main() {int num, fact = 1, i;printf("请输入一个正整数:\n");scanf("%d", &num);for(i = 1; i <= num; i++) {fact *= i;}printf("%d的阶乘为:%d\n", num, fact);return 0;}```试题四:编写一个C程序,实现输入一个三位数,判断该数是否为水仙花数。

c语言试题带答案

c语言试题带答案

c语言试题带答案1. 编程题请编写一个C程序,输出1到100之间所有的素数。

```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i <= num / 2; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {printf("1到100之间的素数有:\n");for (int i = 1; i <= 100; i++) {if (isPrime(i)) {printf("%d ", i);}}printf("\n");return 0;}```2. 填空题下面是一个C程序的片段,请填写空缺的代码,使得程序输出结果为"Hello, World!"。

```c#include <stdio.h>int main() {______("Hello, World!");return 0;}```答案:printf3. 判断题下面的表达式是否正确?如果正确请写"正确",否则请写"错误"。

```cint a = 10;int b = 5;int c = 15;int result = (a > b) && (c > a || c < b);```答案:正确4. 解答题请解释以下C语言代码中"const"关键字的作用。

```c#include <stdio.h>int main() {const int num = 10;int array[num];for (int i = 0; i < num; i++) {array[i] = i + 1;}printf("数组的元素为:");for (int i = 0; i < num; i++) {printf("%d ", array[i]);}printf("\n");return 0;}```答案:const关键字用于声明常量,表示该变量的值在程序中不可更改。

c软件开发笔试题目

c软件开发笔试题目

c软件开发笔试题目C语言是一种底层的编程语言,广泛应用于软件开发和系统编程中。

C语言的掌握程度对于软件工程师而言是非常重要的。

为了评估应聘者对C语言的理解和编程能力,以下是一些C 语言的笔试题目。

1. 编写一个程序,计算斐波那契数列的第n项。

示例:输入: n = 6输出: 82. 编写一个程序,将字符串中的每个单词的首字母变为大写。

示例:输入: "hello world"输出: "Hello World"3. 编写一个程序,输入一个字符串并判断是否为回文字符串。

示例:输入: "racecar"输出: 是回文字符串4. 编写一个程序,输入一个整数并判断是否为素数。

示例:输出: 是素数5. 编写一个程序,输入一个字符串并统计其中每个字符出现的次数。

示例:输入: "hello"输出:h: 1e: 1l: 2o: 16. 编写一个程序,输入两个整数并计算它们的最大公约数。

示例:输入: 36, 48输出: 127. 编写一个程序,输入一个数组并逆序输出。

示例:输入: [1, 2, 3, 4, 5]输出: [5, 4, 3, 2, 1]8. 编写一个程序,实现冒泡排序算法。

输入: [5, 2, 1, 3, 4]输出: [1, 2, 3, 4, 5]9. 编写一个程序,实现选择排序算法。

示例:输入: [5, 2, 1, 3, 4]输出: [1, 2, 3, 4, 5]10. 编写一个程序,实现快速排序算法。

示例:输入: [5, 2, 1, 3, 4]输出: [1, 2, 3, 4, 5]以上是一些基础的C语言编程题目。

应聘者可以根据自己的理解和实际的编程能力,完成相应的代码实现。

除了正确的输出结果,代码的可读性、效率和健壮性也是评价标准。

在面试过程中,可以考察应聘者对于C语言的理解和应用能力,从而评估其在软件开发中的潜力和能力。

11. 编写一个程序,实现链表的基本操作,包括创建链表、插入节点、删除节点以及打印链表。

c语言考试试题及答案

c语言考试试题及答案

c语言考试试题及答案1. 阅读以下C语言程序代码,选择正确的输出结果。

```c#include <stdio.h>int main() {int a = 10;int b = 20;int c = a + b;printf("%d\n", c);return 0;}```A. 10B. 20C. 30D. 40答案:C2. 以下哪个选项是C语言中合法的整型常量?A. 0x1AB. 0123C. 0b1010D. 1.2E3答案:A3. 以下哪个关键字用于定义C语言中的函数?A. intB. returnC. voidD. main答案:C4. 以下哪个选项是C语言中合法的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "HelloWorld!"D. "Hello\"World!"答案:A5. 以下哪个选项是C语言中合法的变量名?A. _2namesB. name2C. 2namesD. name$2答案:B6. 以下哪个选项是C语言中合法的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:A7. 以下哪个选项是C语言中合法的指针声明?A. int *ptr;B. int * ptr;C. int ptr*;D. int ptr = *5;答案:A8. 以下哪个选项是C语言中合法的函数原型声明?A. int func();B. int func(int);C. int func(int a, int b);D. All of the above答案:D9. 以下哪个选项是C语言中合法的循环语句?A. for(;;)B. while(1)C. do {} while(0);D. All of the above答案:D10. 以下哪个选项是C语言中合法的条件语句?A. if (x > 0)B. if (x = 0)C. if (x == 0)D. All of the above答案:C。

c语言笔试题

c语言笔试题

c语言笔试题1. 编写一个C程序,交换两个整数变量的值。

```c#include <stdio.h>int main() {int a, b, temp;printf("请输入两个整数:\n");scanf("%d%d", &a, &b);printf("交换前的值:a = %d, b = %d\n", a, b);temp = a;a = b;b = temp;printf("交换后的值:a = %d, b = %d\n", a, b);return 0;}```2. 编写一个C程序,计算斐波那契数列的第n项。

```c#include <stdio.h>int fib(int n) {if (n == 0 || n == 1) {return n;} else {return fib(n - 1) + fib(n - 2);}}int main() {int n;printf("请输入一个正整数:\n");scanf("%d", &n);printf("斐波那契数列的第%d项为:%d\n", n, fib(n)); return 0;}```3. 编写一个C程序,打印九九乘法表。

```c#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d * %d = %d\t", i, j, i * j);}printf("\n");}return 0;}```4. 编写一个C程序,判断一个正整数是否为素数。

```c#include <stdio.h>int isPrime(int n) {int i;if (n <= 1) {return 0;}for (i = 2; i * i <= n; i++) {if (n % i == 0) {return 0;}}return 1;}int main() {int n;printf("请输入一个正整数:\n"); scanf("%d", &n);if (isPrime(n)) {printf("%d是素数。

C语言笔试真题及答案

C语言笔试真题及答案

一、C语言基本知识1.C语言的特点以及C语言程序的组成;2.数据类型,包括整型、实型、字符型等常量与变量和变量的赋值;用typedef定义类型;3.各种类型数据之间的混合运算;4.各类运算符的运算规则和优先级;条件运算符;5.算术表达式、关系表达式和逻辑表达式,逗号运算符和逗号表达式,表达式sizeof的含义。

二、语句1.赋值语句(含条件赋值语句)、条件语句(含if、if-else、switch)、循环语句(含while、do-while、for语句,包括循环嵌套和break语句);2.输入/输出语句,包括整型、实型、字符型(含字符串)等类型数据的格式输入函数scanf 和格式输出函数printf。

三、数组1.一维数组与二维数组的定义,数组元素的引用,数组的初始化;2.字符数组的定义,字符数组的初始化,字符数组的引用,字符数组的输入与输出,字符串和字符串处理函数。

四、函数1.函数的定义,函数参数(形参和实参)与函数的返回值;2.函数的调用,包括函数的嵌套调用和递归函数的递归调用;3.命令行参数的概念(带参数的主函数)。

五、宏定义1.带参数的宏定义;2.包含文件的处理。

六、指针1.指针的概念,变量的指针与指向变量的指针变量,包括定义、引用以及指针变量作为函数参数;2.数组的指针,包括指向数组的指针变量的定义与赋值、通过指针引用数组元素、数组名作为函数参数;3.字符串的指针与指向字符串的指针变量。

七、结构体1.结构体的基本概念和特点,结构体的初始化与引用;2.结构体数组。

八、文件1.文本文件的基本概念,文本文件的类型指针FILE以及文本文件的使用方式;2.文本文件的打开(fopen函数)、文本文件的关闭(fclose函数);3.文本文件的状态,包括feof函数和ferror函数;4.文本文件的读写,包括fputc函数和fgetc函数、fgets函数和fputs函数等;5.文本文件的输入函数fscanf和输出函数fprintf。

C笔试题目及答案

C笔试题目及答案

C笔试题目及答案很抱歉,但我无法为您提供一篇完整的C语言笔试题及答案,因为您没有给出一个特定的主题。

C语言是一种广泛使用的编程语言,可以用于解决各种计算机编程问题。

因此,题目的选择范围非常广泛。

以下是一些思考题和示例答案,供您参考。

题目一:写一个程序,计算并输出一个给定数组的平均值。

```c#include <stdio.h>int main() {int arr[] = {5, 10, 15, 20, 25};int n = sizeof(arr) / sizeof(arr[0]);int sum = 0;for(int i = 0; i < n; i++) {sum += arr[i];}float average = (float) sum / n;printf("平均值为:%.2f\n", average);return 0;}```题目二:写一个程序,将一个给定的字符串反转并输出。

```c#include <stdio.h>#include <string.h>void reverse(char* str) {int start = 0;int end = strlen(str) - 1;while(start < end) {char temp = str[start];str[start] = str[end];str[end] = temp;start++;end--;}}int main() {char str[] = "Hello World!";printf("原始字符串:%s\n", str);reverse(str);printf("反转字符串:%s\n", str);return 0;}```题目三:写一个程序,输入一个正整数n,输出从1到n的所有偶数。

C语言笔试题答案

C语言笔试题答案

C语言笔试题答案很抱歉,由于字符限制,我无法完整回答一篇2000字的C语言笔试题答案。

以下是一个简单的C语言笔试题,带有详细的答案解析,供参考。

题目:编写一个C程序,从键盘输入一组整数,统计其中正数、负数和零的个数,并输出最大值和最小值。

```c#include <stdio.h>int main() {int n;int positiveCnt = 0, negativeCnt = 0, zeroCnt = 0;int max = INT_MIN, min = INT_MAX;// 输入一组整数printf("请输入一组整数(以0作为结束):\n");while(1) {scanf("%d", &n);// 如果输入为0,则结束循环if (n == 0) {break;}// 统计正数、负数和零的个数if (n > 0) {positiveCnt++;} else if (n < 0) {negativeCnt++;} else {zeroCnt++;}// 更新最大值和最小值if (n > max) {max = n;}if (n < min) {min = n;}}// 输出统计结果printf("正数的个数:%d\n", positiveCnt); printf("负数的个数:%d\n", negativeCnt); printf("零的个数:%d\n", zeroCnt);// 输出最大值和最小值printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}```解析:1. 首先,我们定义了几个变量来储存统计结果,包括正数个数、负数个数、零个数、最大值和最小值。

C语言工作笔试题

C语言工作笔试题

【1 使用宏】1.1#ifdef NDEBUG#define TRACE(S) S#else#define TRACE(S) printf(”%s;\n”, #S); S#endif问:以上TRACE()宏的作用是什么?在debug状态下在计算表达式S前先打印S1.2 #error的作用?强制编译器报错不继续编译1.3 定义一个宏,求出给定数组中的元素的个数#define NELEMENTS(array) ??#define NELEMENTS(array) (sizeof(array) / sizeof((array)[0]))1.4 定义一个宏,求出给定结构中给定成员的偏移量#define OFFSET(structure, member) ??#define OFFSET(structure, member) ((int) &(((structure *)0)->member))【2 数据声明和定义】给定以下类型的变量a的定义式:a) An integer Int ab) A pointer to an integer int *ac) A pointer to a pointer to an integer int **ad) An array of 10 integers int a[10]e) An array of 10 pointers to integers int *a[10]f) A pointer to an array of 10 integers int (*a)[10]g) A pointer to a function that takes an integer as an argument and returns a n integer int (*a)(int)h) An array of ten pointers to function s that take an integer argument and ret urn an integer int (*a[10])(int)【3 复杂类型(1)】有如下表达式:char (*(*x())[])();请用文字描述x是什么。

c语言笔试题(答案)

c语言笔试题(答案)

笔试题一、填空题(每个空4 分,共28 分)1)struct tagABC{char name[10];char sex;long sno;float score[4];}*pAbc;(四字节对齐)pAbc=NULL;那么,执行pAbc+=2;之后pAbc 的值为(64 )2)如下代码,最终 value 的值是(8 )int*p1,*p2;int value;p1=(int*)0×400;p2=(int*)0×408;value = p2-p1;3)如下代码,printf 的结果为( 2 )#include 〈stdio.h〉#include 〈string.h〉void main(void){char acNew[20] = “\\0\0”;printf(“%d\n”,strlen(acNew));}4) 有如下程序段,运行该程序的输出结果是(33 )main (){int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n 的值为( 2 )6)struct tagAAA{Unsigned Unsigned Unsigned Unsigned Unsigned Unsigned char ucId:1; char ucPara0:2; char ucState:6;char ucTail:4; char ucAvail; char unTail2:4;Unsigned long ulData;}AAA_S问:AAA_S 在字节对齐分别为 1,4 情况下,占用的空间大小分别是多少?(9 )(12 )二、选择题(每题2 分,共34 分)1) 若有说明 int(*p)[3];以下叙述正确的是( D )A:p是指针数组B:(*p)[3]和*p[3]等价C:p 是指向一维数组中任何一个元素的指针D:p 是指向含有 3 个整型元素的一维数组的指针2) 以下关于单元测试的描述,哪些是对的?( D )A:黑盒测试针对软件的功能,不考虑功能的实现细节;B:白盒测试针对源代码的测试,从程序功能的具体实现上找错;C:路径覆盖是黑盒测试的一种方法,编写测试用例使程序的每条语句都能走到;D:条件覆盖是百盒测试的一种方法, 编写测试用例使程序的每个判断的各种情况都能到3) 以下可以用于任务间通信的有(ABCD )A:共享内存B:信号量C:消息队列和管道D:socket 调用4) 有关结构,以下哪些描述是对的?(BC )A:为了测试方便,尽量把一个结构的功能设计得多一些B:不同结构间的关系不要过于复杂C:结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中D:结构中元素的布局与排列顺序可以随意设计5) 关于强制类型转化,下面说法正确的是(ABCD)A:当目的结构的空间大于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界;B:当目的结构的空间小于源结构的空间时,要重点关注对目的结构赋值不能完全覆盖源结构范围的情形,可能遗漏;C:结构体之间的强制类型转换时,其成员字段的数据类型的差异也是要格外小心的;D:与结构体之间的强制类型转换相比,基本数据结构的强制类型转换更容易出现上面描述的情况,使用的时候,一定要慎之又慎;6) 正确的使用assert,软件系统不会对人为原因造成的错误进行处理。

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

四、编程题
1、将一个数组中的值按逆序重新存放,原来的顺序为:3,4,5,6,7,,要求改为7,6,5,4,3并输出。

#include < stdio.h>
#define N 5
void main( )
{int a[N]={3,4,5,6,7},i,j,t;
for(i=0,j=N-1;i<=N/2;i++,j--)
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<N;i++)
printf("%3d,",a[i]);
printf("\b%c\n",' ');}
3、编程序,使数组15个元素的值分别为0~14,然后逆序输出。

#include < stdio.h>
#define N 15
void main( )
{ int i,x[N];
for(i=0;i<=N;i++)
x[i]=i;
for(i=N-1;i>=0;i--)
printf("%4d",x[i]);
printf("\n");}
4、求出10至900之内能同时被3、
5、7
#include < stdio.h>
void main( )
{ int i; for(i=10;i<=900;i++)
printf("\n");}
5、求1+2+3+…+50偶数之和
#include < stdio.h>
void main( )
{ int i,s=0;
for(i=1;i<=50;i++)
if(i%2==0)s+=i;printf("%d\n",s);}
6
#include "stdio.h"
void main()
{int i,max=-1000,x;
for(i=1;i<11;i++)
{printf("enter a number:\n");
scanf("%d",&x);
if(x>max)max=x;
}
printf("the max is %d\n",max);
}
7、编写程序实现以下功能,从键盘任意输入十个整数,找出其中的最小值。

#include "stdio.h"
void main()
{int i,min=10000,x;
for(i=1;i<11;i++)
{printf("enter a number:\n");
scanf("%d",&x);
if(x<min)min=x;
}
printf("the max is %d\n",max);}
8、求1+2+3+…+50奇数之和(程序略)
8、输入两个任意的正整数,求它们的最大公约数。

(参见教材p88 例5.4)
9、输出Fibonacci数列1,1,2,3,5,8,13……的前20项,要求每输出5项后换行。

(参见教材p93)
10、编程打印以下图形:(参见教材p100 例5.18)
11、编程求一个3×4的矩阵的转置矩阵。

12、设有一个分数数列2/1,3/2,5/3,8/5,13/8,21/13, …编程求出这个数列的前20项之和。

#include "stdio.h"
void main()
{int i;
float fz=2,fm=1,t,s=0;
for(i=0;i<=20;i++)
{s+=fz/fm;
t=fz+fm;fm=fz;fz=t;}
printf("s=%f\n",s);
}
13、判断一个任意输入的正整数m是否为素数(参见教材p95 例5.13)。

14、用穷举法解决搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次搬完,问需要男、女、小孩各多少?(参见教材p99 例5.17)。

相关文档
最新文档