常见C语言笔试题
c语言考试笔试题及答案详解

c语言考试笔试题及答案详解一、选择题(每题2分,共20分)1. C语言中用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言中数组的描述,错误的是:A. 数组必须在编译时确定大小B. 数组可以是多维的C. 数组的元素必须是同一类型D. 数组可以动态分配答案:D3. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcmp答案:A4. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C5. C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:C6. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. caseD. for答案:C7. 在C语言中,用于声明一个指针的语法是:A. int *p;B. int p*;C. int *p = 0;D. int *p = p;答案:A8. C语言中,用于定义一个枚举类型的关键字是:A. enumB. typedefC. unionD. struct答案:A9. 下列关于C语言中指针的描述,错误的是:A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针可以存储函数的地址答案:D10. C语言中,用于定义一个联合体的关键字是:A. structB. unionC. enumD. typedef答案:B二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个变量的存储类型为静态存储。
答案:static2. C语言中,使用________运算符可以计算两个整数的和。
答案:+3. 在C语言中,使用________关键字可以定义一个函数的返回类型为无返回值。
c笔试题目及答案

c笔试题目及答案1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 题目:以下哪个关键字用于定义一个函数?A. classB. functionC. defD. int答案:D3. 题目:C语言中,哪个运算符用于将变量的值增加1?A. +=B. --C. +=D. ++答案:D4. 题目:以下哪个选项是C语言中的合法数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {0};D. All of the above答案:D5. 题目:C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A6. 题目:以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. // This is a single line comment/* This is a multi-line comment */D. All of the above答案:D7. 题目:C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A8. 题目:以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>#include "stdio.h"D. All of the above答案:A9. 题目:以下哪个选项是C语言中正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 题目:C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. reference答案:C。
100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool,float,指针变量与“零值”比较的if语句。
提示:这里“零值”可以是0,0.0,FALSE 或者“空指针”。
例如int变量n与“零值”比较的if语句为:if ( n == 0 )if ( n != 0 )以此类推。
(1)请写出 bool flag 与“零值”比较的 if 语句:【标准答案】if ( flag )if ( !flag )(2)请写出 float x 与“零值”比较的 if 语句:【标准答案】 const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
(3)请写出 char *p 与“零值”比较的 if 语句【标准答案】 if (p == NULL)if (p != NULL)2、以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。
char str[] = “Hello” ;char *p = str ;int n = 10;请计算(1)sizeof (str ) =(2)sizeof ( p ) =(3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) {……;} 请计算 sizeof( str ) = (5)void *p = malloc( 100 );请计算sizeof ( p ) =【标准答案】(4)4、(5)43、 long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。
4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针 ;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20.data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。
c语言笔试考试题及答案

c语言笔试考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0.123C. 1.2E3D. 1.2e3答案:A2. C语言中,以下哪个是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A4. C语言中,以下哪个是合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3};答案:A5. 在C语言中,以下哪个是正确的函数声明?A. int add(int x, int y);B. int add(int x; int y);C. int add(int x, int);D. int add(int, int);答案:A6. C语言中,以下哪个是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x, y; };答案:C7. 在C语言中,以下哪个是正确的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)[5];答案:A8. C语言中,以下哪个是正确的枚举声明?A. enum Color { Red, Green, Blue };B. enum Color: Red, Green, Blue;C. enum { Red, Green, Blue };D. enum Color { 1, 2, 3 };答案:A9. 在C语言中,以下哪个是正确的宏定义?A. #define MAX 100B. #define MAX(100)C. #define MAX 100D. #define MAX = 100答案:A10. C语言中,以下哪个是正确的条件语句?A. if (x > 0) { ... } else { ... }B. if x > 0 { ... } else { ... }C. if (x > 0) then { ... } else { ... }D. if (x > 0) { ... } else if { ... }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。
c语言笔试考试题及答案

c语言笔试考试题及答案1. 以下哪个选项是C语言中的关键字?A) intB) IntegerC) stringD) float答案:A2. C语言中,用于定义一个整型变量的关键字是什么?A) varB) integerC) intD) float答案:C3. 在C语言中,以下哪个函数用于将整数转换为字符串?A) sprintfB) atoiC) itoaD) printf答案:C4. 下列哪个选项不是C语言中的运算符?A) %B) &&C) ==D) ++答案:B5. 在C语言中,以下哪个语句用于结束一个循环?A) breakB) continueC) returnD) exit答案:A6. 以下哪个函数用于获取当前时间?A) time()B) localtime()C) mktime()D) strftime()答案:A7. C语言中,以下哪个选项是正确的注释格式?A) /* This is a comment */B) // This is a commentC) //* This is a commentD) # This is a comment答案:A8. 在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};答案:A9. 在C语言中,以下哪个选项是正确的字符串声明?A) char str[] = "Hello";B) char str = "Hello";C) char str[] = {"Hello"};D) char str = {"Hello"};答案:A10. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A) atofB) atoiC) itoaD) sprintf答案:A。
c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A2. C语言中,int类型变量的默认初始值是多少?A. 0B. 1C. -1D. 随机值答案:A3. 以下哪个是正确的C语言函数声明?A. int function(int a, int b)B. void function(int a, int b)C. int function(int a, int b) {}D. int function(int a, int b) {return a + b;}答案:B4. 在C语言中,哪个运算符用于求两个数的余数?A. /B. %C. *D. -答案:B5. 下列哪个是C语言中正确的数组声明?A. int array[10];B. int array = 10;C. int array(10);D. int [10] array;答案:A6. C语言中,哪个语句用于结束程序的执行?A. break;B. continue;C. return;D. exit;答案:C7. 在C语言中,哪个函数用于计算两个数的和?A. sum(int a, int b)B. add(int a, int b)C. plus(int a, int b)D. None of the above答案:D8. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:A9. 下列哪个选项是C语言中的控制流语句?A. ifB. switchC. caseD. All of the above答案:D10. 在C语言中,哪个语句用于实现循环?A. forB. whileC. do-whileD. All of the above答案:D二、填空题(每空2分,共20分)1. C语言中,____ 用于定义一个字符常量。
c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C2. 下列哪个选项是C语言的关键字?A. defineB. intC. integerD. float答案:B3. 以下哪个语句不能通过编译?A. int a = 10;B. int b = 10.5;C. int c = 'a';D. int d = 1.0;答案:B4. C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sin()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设它是一个自定义函数)5. 以下哪个选项是正确的C语言数组声明?A. int numbers[];B. int numbers[10] = {};C. int numbers = 10;D. int [10] numbers;答案:B6. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\"World"答案:A7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. myFunction();D. int myFunction()答案:A8. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. cout()D. getchar()答案:C9. 在C语言中,以下哪个是正确的逻辑运算符?A. &&B. ||C. ||D. ++答案:A10. 下列哪个选项是C语言的预处理指令?A. #includeB. defineC. ifD. else答案:A二、简答题(每题5分,共20分)1. 请简述C语言中数组和指针的区别。
c语言编写函数笔试题及答案

c语言编写函数笔试题及答案C语言编写函数笔试题及答案1. 题目一:计算阶乘编写一个函数,计算并返回一个整数的阶乘。
阶乘定义为:n! = n * (n-1) * (n-2) * ... * 1,其中n! = 1,当n=0。
函数原型:```clong long factorial(int n);```答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d is %lld\n", num, factorial(num)); return 0;}```2. 题目二:字符串反转编写一个函数,接受一个字符串作为参数,将其反转并返回。
函数原型:```cchar* reverseString(char* str);```答案:```c#include <stdio.h>#include <string.h>char* reverseString(char* str) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}return str;}int main() {char str[] = "Hello, World!";printf("Reversed string: %s\n", reverseString(str));return 0;}```3. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。
c语言笔试题及答案

c语言笔试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:B2. 下列哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. <!—这是注释—>D. /* 这是注释答案:A3. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. _variableD. variable答案:D4. C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello, World!";B. char str[] = 'Hello, World!';C. char str[] = "Hello, World!";D. char str[] = {"Hello, World!"};答案:A5. 以下哪个选项是C语言中正确的整型常量?A. 012B. 0x1AC. 1.0E2D. 0b1010答案:B二、填空题1. 在C语言中,_________ 运算符用于比较两个值是否相等。
答案:==2. C语言中,_________ 函数用于将字符串转换为浮点数。
答案:atof3. 在C语言中,_________ 运算符用于取一个数的相反数。
答案:-4. C语言中,_________ 函数用于输出字符串。
答案:printf5. 在C语言中,_________ 运算符用于连接两个字符串。
答案:+三、编程题1. 编写一个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;}```2. 编写一个C语言程序,实现字符串的反转。
c语言笔试题及答案

c语言笔试题及答案**C语言笔试题及答案**1. 以下哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. variable-nameD. variable#name**答案:B**解析:在C语言中,标识符可以由字母、数字和下划线组成,但不能以数字开头,不能包含空格、标点符号等特殊字符。
因此,只有选项B "variable2" 是合法的标识符。
2. 若有以下定义:```cint a = 5, b = 10, c = 15;```则表达式 `a + b > c && a < b+2` 的值是多少?A. 1B. 0C. 2D. 3**答案:A**解析:表达式 `a + b > c && a < b+2` 可以分解为两部分:`a + b > c` 和 `a < b+2`。
首先计算 `a + b > c`,即 `5 + 10 > 15`,结果为假(0)。
由于逻辑与操作(&&)要求两边都为真,整个表达式的结果才为真,因此整个表达式的结果为假(0)。
但由于C语言中假值用0表示,真值用1表示,所以最终结果为1。
3. 以下哪个选项是C语言中正确的字符串声明?A. char str[] = "Hello, World!";B. char str[13] = "Hello, World!";C. char str[] = {"Hello, World!"};D. char str = "Hello, World!";**答案:A**解析:在C语言中,字符串应该使用字符数组来存储,并以null字符('\0')结尾。
选项A正确地声明了一个字符串数组,并自动在末尾添加了null字符。
c语言笔试题及答案

c语言笔试题及答案C语言笔试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. voidB. intC. floatD. all of the above答案:D2. C语言中,哪个函数用于计算两个数的和?A. add()B. sum()C. max()D. min()答案:A3. 在C语言中,以下哪个是正确的字符串定义方式?A. char str[10] = "Hello";B. string str = "Hello";C. char str[] = "Hello";D. char str = "Hello";答案:A4. 以下哪个选项不是C语言的基本数据类型?A. intB. floatC. doubleD. string答案:D5. 在C语言中,以下哪个语句是正确的循环语句?A. whileB. do-whileC. forD. all of the above答案:D二、填空题(每空2分,共20分)6. C语言中,定义一个整型变量的关键字是________。
答案:int7. 在C语言中,表示逻辑与的运算符是________。
答案:&&8. 一个C语言程序的执行从________函数开始。
答案:main9. 在C语言中,数组的索引从________开始。
答案:010. C语言中,表示逻辑非的运算符是________。
答案:!三、简答题(每题10分,共20分)11. 简述C语言中函数的定义和调用过程。
答案:在C语言中,函数定义包括返回类型、函数名、参数列表和函数体。
调用函数时,需要使用函数名和相应的参数列表。
12. 解释C语言中指针的概念及其用途。
答案:指针是C语言中一种特殊的变量,它存储了另一个变量的内存地址。
指针主要用于直接访问内存地址,实现动态内存分配,以及函数参数的传递等。
c语言笔试题目

c语言笔试题目
以下是一些C语言笔试题目:
1. 什么是C语言?C语言有哪些特点?
2. C语言程序的基本结构是什么?
3. 什么是数据类型?C语言中有哪些常见的数据类型?
4. 什么是变量?变量在C语言中的作用是什么?
5. C语言中的运算符有哪些?它们的优先级和结合性是如何的?
6. 写出C语言中常用的控制结构,如if语句、for循环、while循环等。
7. 什么是函数?函数在C语言中的作用是什么?如何定义和调用函数?
8. 什么是数组?数组在C语言中的作用是什么?如何定义和初始化数组?
9. 什么是指针?指针在C语言中的作用是什么?如何定义和初始化指针?
10. 什么是结构体?结构体在C语言中的作用是什么?如何定义和初始化结构体?
11. C语言中如何进行文件操作,如文件的打开、读写和关闭等?
12. C语言中的内存管理是如何进行的?什么是动态内存分配和释放?
13. C语言中的位运算有哪些?它们的作用是什么?
14. C语言中的预处理器指令有哪些?它们的作用是什么?
15. C语言中的错误处理机制是如何的?如何进行错误处理?
以上是一些常见的C语言笔试题目,希望对你有所帮助。
c语言笔试题带答案

c语言笔试题带答案第一题:```c#include <stdio.h>int main() {printf("Hello World!\n");return 0;}```答案:输出 "Hello World!"第二题:```c#include <stdio.h>int main() {int a = 5;int b = 3;int c = a + b;printf("%d\n", c);return 0;}```答案:输出 "8"第三题:```c#include <stdio.h>int main() {int x = 10;int y = 3;float z = (float) x / y; printf("%.2f\n", z); return 0;}```答案:输出 "3.33"第四题:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num);} else {printf("%d是奇数\n", num);}return 0;}```答案:根据输入的整数判断是偶数还是奇数并打印相应结果。
第五题:```c#include <stdio.h>int main() {int n;scanf("%d", &n);int sum = 0;int num;for (int i = 0; i < n; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &num);sum += num;}printf("这%d个整数的和为:%d\n", n, sum);return 0;}```答案:根据输入的整数个数和整数值求和并打印结果。
c语言笔试题及答案

c语言笔试题及答案# C语言笔试题及答案## 一、选择题1. 题目:以下哪个是C语言的标准输入输出库函数? - A. `printf()`- B. `scanf()`- C. `cout`- D. `cin`答案:A、B2. 题目:C语言中,哪个关键字用于声明一个函数? - A. `int`- B. `void`- C. `return`- D. `function`答案:A3. 题目:以下哪个语句是正确的C语言语句?- A. `int a = 5;`- B. `int a = 5.5;`- C. `int a = "5";`- D. `int a = true;`答案:A## 二、简答题1. 题目:简述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数传递等。
通过指针,可以间接访问和修改其他变量的值,实现数据共享和高效内存使用。
2. 题目:解释C语言中的递归函数。
答案:递归函数是指在函数内部调用自身的函数。
递归函数通常用于解决可以分解为相同问题的子问题的问题,如阶乘计算、斐波那契数列等。
递归函数需要有一个明确的结束条件,以避免无限递归。
## 三、编程题1. 题目:编写一个C语言程序,实现求两个整数的最大公约数。
```c#include <stdio.h>int gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2)); return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。
c语言笔试题目100及最佳答案

c语言笔试题目100及最佳答案1. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪种数据类型是用于存储字符的?A. intB. charC. floatD. double答案:B3. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. forD. switch答案:D4. 在C语言中,以下哪个运算符用于执行算术运算?A. %B. &&C. ==D. +答案:D5. 如何定义一个具有10个元素的整型数组?A. int array[10];B. int array(10);C. int array[10] = {0};D. int array = 10;答案:A6. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 在C语言中,以下哪个函数用于计算数组中元素的数量?A. sizeofB. lengthC. countD. size答案:A8. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 在C语言中,以下哪个关键字用于声明一个全局变量?A. externB. staticC. globalD. local答案:A10. 在C语言中,以下哪个函数用于打开一个文件?A. fopenB. openC. readD. write答案:A11. 在C语言中,以下哪个函数用于关闭一个文件?A. fcloseB. closeC. endD. finish答案:A12. 在C语言中,以下哪个函数用于读取一个字符?A. getcharB. getcC. fgetcD. scanf答案:A13. 在C语言中,以下哪个函数用于写入一个字符?A. putcharB. putcC. fputcD. printf答案:A14. 在C语言中,以下哪个函数用于格式化输出?A. printfB. sprintfC. fprintfD. all of the above答案:D15. 在C语言中,以下哪个函数用于格式化输入?A. scanfB. sscanfC. fscanfD. all of the above答案:D16. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. lengthC. sizeD. count答案:A17. 在C语言中,以下哪个函数用于连接两个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:A18. 在C语言中,以下哪个函数用于复制一个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:C19. 在C语言中,以下哪个函数用于比较两个字符串?A. strcmpB. strcpyC. strcatD. strncpy答案:A20. 在C语言中,以下哪个函数用于查找字符串中子串的位置?A. strstrB. strchrC. strrchrD. strcspn答案:A。
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语言笔试题(答案)

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 char ucId:1;Unsigned char ucPara0:2;Unsigned char ucState:6;Unsigned char ucTail:4;Unsigned char ucAvail;Unsigned 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,软件系统不会对人为原因造成的错误进行处理。
c语言笔试题目及答案

c语言笔试题目及答案一、选择题(每题2分,共10分)1. 下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. C语言中,用于定义一个字符常量的是?A. 'a'B. "a"C. aD. 1答案:A3. 下列哪个选项是正确的C语言函数定义?A. int function();B. int function;C. int function int x;D. int function(int x)答案:D4. 以下哪个选项不是C语言中的运算符?A. %=B. &&C. ::D. ||答案:C5. 在C语言中,一个变量的声明应该放在?A. 函数内部B. 函数外部C. 函数内部或外部D. 只能放在函数内部答案:C二、填空题(每题2分,共10分)1. 在C语言中,____关键字用于声明一个外部变量。
答案:extern2. C语言中,用于定义一个指针的语法是____。
答案:*变量名3. 用于在C语言中声明一个函数的关键字是____。
答案:int4. 在C语言中,____运算符用于计算两个整数的差。
答案:-5. 用于在C语言中声明一个数组的语法是____。
答案:类型名数组名[数组大小]三、简答题(每题5分,共20分)1. 简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被看作是一个指向数组首元素的指针,数组的每个元素可以通过指针运算来访问。
2. 解释C语言中的递归函数是什么?答案:递归函数是指在函数定义中调用自身的函数,它通常用于解决可以分解为更小、相似问题的任务。
3. 什么是C语言中的预处理指令?答案:预处理指令是C语言编译过程中处理的特殊指令,它们不是C语言的一部分,但对编译过程有影响,如#include、#define等。
4. 描述C语言中如何实现文件的读写。
答案:在C语言中,可以使用fopen、fprintf、fscanf、fclose 等函数来实现文件的打开、写入、读取和关闭。
c语言常见笔试题

printf("not equal !\n");
}
请问本程序的输出显示是什么?
答案:输出显示为”equal!”
2.
struct {
signed int bit0:1;
signed int bit1:1;
signed int bit2:1;
signed int bit3:1;
3.
struct bit{
unsigned int a[0]:1,a[1]:1,a[2]:1….a[7]:1;
}
请问这种写法是否正确?为什么?
答案:不正确,位域中的变量不能是数组。
4.
struct a {
int x;
char y;
struct a z;
{
p=(struct number *)malloc(sizeof(struct number));
p->num=i;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
}
tail->next=head;
signed int bit3:1;
signed int bit4:1;
signed int bit5:1;
signed int bit6:1;
signed int bit7:1;
}bits;
修改后sizeof(bits)表达式依然正确,其值为4;类型改为char后其值为1,注意该值是在VC环境中的32位程序中得到的值,在不同的编译器其值有可能不同,因此在编程时不能自己假定类似结构的大小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、编写strcpy函数(10分)已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数strcpychar *strcpy(char *strDest, const char *strSrc);{assert((strDest!=NULL) && (strSrc !=NULL)); // 2分char *address = strDest; // 2分while( (*strDest++ = * strSrc++) != ‘\0’ ) // 2分NULL ;return address ; // 2分}(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?答:为了实现链式表达式。
// 2分例如int length = strlen( strcpy( strDest, “hello world”) );六、编写类String的构造函数、析构函数和赋值函数(25分)已知类String的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &other); // 赋值函数private:char *m_data; // 用于保存字符串};请编写String的上述4个函数。
标准答案:// String的析构函数String::~String(void) // 3分{delete [] m_data;// 由于m_data是内部数据类型,也可以写成delete m_data; }// String的普通构造函数String::String(const char *str) // 6分{if(str==NULL){m_data = new char[1]; // 若能加NULL 判断则更好*m_data = …\0‟;}else{int length = strlen(str);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, str);}}// 拷贝构造函数String::String(const String &other) // 3分{int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);}// 赋值函数String & String::operate =(const String &other) // 13分{// (1) 检查自赋值// 4分if(this == &other)return *this;// (2) 释放原有的内存资源// 3分delete [] m_data;// (3)分配新的内存资源,并复制内容// 3分int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);// (4)返回本对象的引用 // 3分return *this;}华为笔试2006-2-28 星期二(Tuesday) 晴1、局部变量能否和全局变量重名?答:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内2、如何引用一个已经定义过的全局变量?答:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
(不要问我什么是编译期间,什么是连接期间,请自己查资料)3、全局变量定义在可被多个.C文件包含的头文件中可不可以?为什么?答:可以,但要加static4、语句for( ;1 ;)有什么问题?它是什么意思?答:死循环,同while(1),这种写法并不规范,可读性差,一般不用5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}答:10,12,1207.static函数与普通函数有什么区别?只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。
对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。
8.static全局变量与普通的全局变量有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。
由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。
把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
9.程序的局部变量存在于(栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
10.设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____11.队列和栈有什么区别?队列先进先出,栈后进先出12.写出下列代码的输出内容#includeint inc(int a){return(++a);}int multi(int*a,int*b,int*c){return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);void show(FUNC2 fun,int arg1, int*arg2){INCp=&inc;int temp =p(arg1);fun(&temp,&arg1, arg2);printf("%d\n",*arg2);}main(){int a;show(multi,10,&a);return 0;}翻译一下================================== #includeusing namespace std;// 返回a + 1int inc(int a){return a+1;}// out = a*bint multi(int& a, int& b, int& out){return out = a*b;}// 定义两种函数,FUNC1对应inc, FUNC2对应multitypedef int(FUNC1) (int in);typedef int(FUNC2) (int&,int&,int&);// 诡异的函数,这是模糊C大赛么...void show( FUNC2* func, int num, int& out ){FUNC1* pInc = inc;//原文这句写错了...orz... INC根本没定义 int numAdd1 = pInc( num );// 等价于numAdd1 = inc( num );// 结果num仍然是10, numAdd1 = 11// 调用func函数,可以看到, main中传给func的是multi.// 所以调用的是multi( 11, 10, out ), out = 110func( numAdd1, num, out );cout< }int main(){int a;show(multi,10, a);return 0;}==================================13.请找出下面代码中的所以错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” ==================================main(){char*src="hello,world";char* dest=NULL;int len=strlen(src);dest=(char*)malloc(len);//!1 少分配了一字节. strlen计数不包括\0char* d = dest;char* s = src[len];//!2 两个错误. 应该为&src[ len-1 ]while( len-- != 0 )d++=s--;//!3 *d++ = *s--;//!4 尾部要\0,应加上*d = 0;printf("%s",dest);return 0;}==================================修正后的答案:==================================int main(){char* src = "hello,world";int len = strlen(src);char* dest = (char*)malloc(len+1);.char* d = dest;char* s = &src[len-1];while( len-- != 0 )*d++=*s--;*d = 0;printf("%s",dest);return 0;}==================================# posted by 孜孜不倦心@ 2006-02-28 22:24 评论(1)什么是IP协议?2006-2-27 星期一(Monday) 小雪TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP 协议和TCP协议组成的。