C语言编程基础考试试题

合集下载

C语言基础题及答案

C语言基础题及答案

C语言基础题及答案1、一个C语言的源程序中[正确答案:A]。

A)必须有一个主函数B)可以有多个主函数C)必须有主函数和其他函数D)可以没有主函数2、关于C程序的主函数,以下描述中正确的是[正确答案:B]。

A)C程序的第一个函数称为主函数,程序从该函数开始运行。

B)C程序的主函数即是main函数,程序从该函数开始运行。

C)C程序可以有多个主函数,程序从第一个主函数开始运行。

D)C程序可以没有主函数,程序从第一个函数开始运行。

3、C程序中,return语句的作用是[正确答案:D]。

A)终止程序运行B)返回到上层循环C)返回到外层结构D)返回到上层函数4、C语言程序的3种基本结构是[正确答案:A]。

A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构5、以下对C程序的描述中正确的是[正确答案:A]。

A)C程序总是从main()函数开始执行。

B)C程序可以从程序中的任何函数开始执行。

C)C程序总是从第一个定义的函数开始执行。

D)C程序中的main()函数必须放在程序的开始部分。

6、关于C程序第1行的包含语句,以下写法中正确的是[正确答案:D]。

A)#include stdio.h B)#include'stdio.h'C)#include(stdio.h)D)#include<stdio.h>7、关于C语言程序,正确的编程流程应该是[正确答案:A]。

A)编辑→保存→编译→运行B)编译→编辑→运行→保存C)保存→运行→编辑→编译D)运行→编译→保存→编辑8、下列的哪个不是C语言的关键字[正确答案:D]。

A)while B)auto C)break D)printf9、下列的哪个不是C语言的算术运算符[正确答案:C]。

A)+B)%C)=D)-10、下列的哪个不是C语言的关系运算符[正确答案:C]。

A)>=B)<=C)=D)!=11、下列的哪个是错误的描述[正确答案:D]。

c语言知识试题及答案

c语言知识试题及答案

c语言知识试题及答案1. 介绍C语言是一门广泛应用于计算机科学领域的编程语言。

熟练掌握C 语言知识对于计算机程序员来说非常重要。

以下是一些常见的C语言试题及答案,希望能够帮助你提高对C语言的理解和掌握。

2. 基础知识试题1:什么是C语言?答案:C语言是一种高级编程语言,由贝尔实验室的Dennis Ritchie 在20世纪70年代初开发的。

它具有高效性、可移植性和灵活性等特点。

试题2:列举一些C语言的数据类型。

答案:C语言的数据类型包括整型、浮点型、字符型、指针型、数组、结构体等。

3. 语法与表达式试题3:如何定义一个整型变量x并将其初始化为10?答案:可以使用以下语句来完成:```cint x = 10;```试题4:如何使用printf函数输出一个字符串?答案:可以使用以下语句来完成:```cprintf("Hello, World!");```4. 控制流与循环试题5:如何使用if语句判断一个数是正数、负数还是零?答案:可以使用以下代码来实现:```cint num;printf("请输入一个数:");scanf("%d", &num);if (num > 0) {printf("这是一个正数");} else if (num < 0) {printf("这是一个负数");} else {printf("这是零");}```试题6:如何使用for循环输出1到10之间的所有偶数?答案:可以使用以下代码来实现:```cfor (int i = 1; i <= 10; i++) {if (i % 2 == 0) {printf("%d ", i);}}```5. 函数与模块化试题7:如何定义一个函数来计算两个整数的和?答案:可以使用以下代码来定义一个函数:```cint sum(int a, int b) {return a + b;}// 在主函数中调用该函数int result = sum(3, 5);```试题8:如何使用递归函数来计算一个数的阶乘?答案:可以使用以下代码来实现:```cint factorial(int n) {if (n == 0) {return 1;} else {return n * factorial(n-1);}}// 在主函数中调用该函数int result = factorial(5);```6. 数组与字符串试题9:如何定义一个整型数组,并计算数组中所有元素的和?答案:可以使用以下代码来完成:```cint arr[] = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {sum += arr[i];}printf("数组元素的和为:%d", sum);```试题10:如何使用strcpy函数将一个字符串复制给另一个字符串?答案:可以使用以下代码来实现:```c#include <string.h>char str1[20] = "Hello";char str2[20];strcpy(str2, str1);printf("复制后的字符串为:%s", str2);```7. 指针与动态内存分配试题11:什么是指针,并解释指针和变量之间的区别。

c语言笔试考试题及答案

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语言考试试题基础版

(完整版)C语言考试试题基础版一、选择题1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为。

A. mainB. MAINC. nameD. function2. 在以下关于C 语言的注释的叙述中,不正确的是。

A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示B .编译器在编译一个程序时,将跳过注释,不对其进行处理C .编译器在编译一个程序时,可发现注释中的单词拼写错误D .程序中注释的多少不会影响所生成的可执行文件的长度3. 以下叙述不正确的是。

A .在C 程序中,严格区分大小写字母B .一个C 源程序有且仅有一个main 函数C .在C 程序中,注释只能位于一条语句的后面D .一个C 程序总是从main 函数开始执行4. 下列合法的标识符为A. abde+B. #KDJFC. 67KDJD. DK3_5. 关于字符串和字符的关系正确的是A. “A ”与’A ’是相同的B. 字符串是常量,字符是变量C. “A ”与’A ’是不同的D. “A ”与“A ”是相同的6. 下面关于语句的说法正确的是A. 下面这两段程序的执行效果是一致的B. 空语句是只有一个分号的语句,它其实什么也不干C. 语句的构成不一定需要分号D. 语句的书写对程序的运行不起作用,因此可以随便写都可以7. 以下各标识符中,合法的用户标识符组为。

A. PAd ,P#d ,b-b ,abc ,_0123,ssipedB. cin ,a10,CPP ,float ,del_word ,signedC. void ,max ,hiy ,,list ,*jerif (x>y){z=x; s=z*z;}else{z=y;s=1/(z*z);}if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);D.a,temp,_isw,INT,keep,wind8.字符串“\”E OF= -\61\””的长度是。

《C语言编程基础》试卷

《C语言编程基础》试卷

《C语言编程基础》试卷一、填空题:(每空2分,共40分)1、十进制数125用一个字节的二进制表示是。

2、源程序经过编译后产生的结果称为,其扩展名为。

3、一个C语言函数由和两部分组成。

4、设指针变量fp,打开指定名为“abb.txt”的ASCII码文件只是为了写的表达式为。

5、在内存中应该开辟个字节来存放一个字符。

6、字符串”ab\n\\012\\\’”的长度是。

7、以下程序的输出结果是。

#include<stdio.h>main( ){ int i=6,j; j=(++i)+(i++) ;printf(“j=%d\n”,j);}8、有int x,y;执行y=(x=1,++x,x+2)后,赋值表达式的值为。

9、在C语言中,没有专门为存储字符串的变量,但可以用来存储字符串,其定义格式为。

10、设x,y,z均为int型变量,请写出描述x,y和z中有两个为负数的表达式:。

11、下列程序段中循环体的执行次数是。

a=10;b=0;do {b+=2;a-=2+b;}while(a>=0);12、定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

13、下面程序段的运行结果是。

char x[]=”the teacher”;i=0;while(x[++i]!=’\0’)if(x[i-1]==’t’)printf(“%c”,x[i]);14、程序#include<stdio.h>main(){int j,i=1; j=-i++; printf(“%d,%d\n”,j,i);}运行后输出结果为15、程序#include<stdio.h>main(){int a=177; printf(“a=%o\n”,a);}运行后输出结果为16、若有以下定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;则语句:p+=2,*(p++);执行后的结果(值)是二、选择题:(每题2分,共40分)1、程序: main(){int a=4,b=3,c=1,d=2,e=0;if(a>b) {if(c>d) e=1;}else e=4; printf(“%d\n”,e);} 运行结果为( ).A、0B、4、C、6D、82、下列字符中不属于转义字符的是( )。

c语言考试题库及答案文经学院

c语言考试题库及答案文经学院

c语言考试题库及答案文经学院一、选择题1. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,哪个运算符用于计算两个整数的和?A. +B. -C. *D. /答案:A二、填空题1. 在C语言中,____关键字用于定义一个函数。

答案:void2. 如果一个变量的值是5,那么表达式`5 % 3`的结果是____。

答案:23. C语言中,____运算符用于比较两个值是否相等。

答案:==三、简答题1. 请简述C语言中指针的概念。

答案:指针是一个变量,它存储了另一个变量的内存地址。

通过指针可以间接访问和修改变量的值。

2. 解释C语言中数组和指针的关系。

答案:在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;}```答案:程序输出100以内所有偶数的和。

2. 编写一个C语言函数,计算并返回两个整数的较大值。

```c#include <stdio.h>int max(int a, int b) {return (a > b) ? a : b;}int main() {int x = 10, y = 20;printf("The larger number is: %d\n", max(x, y)); return 0;}```答案:函数max返回两个整数的较大值。

40个C语言的基础编程题

40个C语言的基础编程题

C语言基础编程题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....2.程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf("%12ld %12ld",f1,f2);if(i%2==0) printf("\n");/*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/ }}========================================【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

2.程序源代码:#include "math.h"main(){int m,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){ k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap) {printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThe total is %d",h);} ========================================【程序3】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。

A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。

A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。

A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。

A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。

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

C语言编程基础考试试题文档名称文档密级C语言编程基础考试[考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标准函数都可用;如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐,X86(80586)CPU处理器(32位小字节序处理器).一、单选题1、给出以下定义:char acX[ ]= "abcdefg";char acY[ ]= {'a','b','c','d','e','f','g'};则正确的叙述为( )A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度2、 void example(char acHello[]){printf("%d", sizeof(acHello));return;}void main(){char acHello[] = "hello";example(acHello);return;}的输出是( )A 4B 5C 6 D不确定3、以下叙述中不正确的是( )A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是在栈中保存C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)4、设有如下定义:unsigned long pulArray[] = {6, 7, 8, 9, 10};unsigned long *pulPtr;则下列程序段的输出结果为( )1文档名称文档密级pulPtr = pulArray;*(pulPtr + 2) += 2;printf ("%d,%d\n", *pulPtr, *(pulPtr + 2));A)8,10 B)6,8 C)7,9 D)6,105、有以下程序段char acArr[]= "ABCDE";char *pcPtr;for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++) {printf("%s\n", pcPtr);}return;输出结果是( )A) ABCD B) A C) E D) ABCDEB D BCDEC C CDED B DEE A E6、 void example( ){int i;char acNew[20];for(i = 0; i < 10; i++){acNew[i] = '0';}printf("%d\n", strlen(acNew));return;}的输出为( D )A 0B 10C 11 D不确定7、 switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )A. 正确B. 错误8、全局变量可以定义在被多个.C文件包含着的头文件中。

( )A. 正确B. 错误9、 struct stu{int num;2文档名称文档密级char name[10];int age;};void fun(struct stu *p){printf("%s\n", (*p).name);return;}void main(){struct stu students[3]={ {9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18} };fun(students + 2);return;}输出结果是( )A) Zhang B)Zhao C) Wang D) 1810、以下程序运行后,输出结果是( ) void main( ){char *szStr = "abcde";szStr += 2;printf("%lu \n",szStr);return;}A cdeB 字符c的ASCLL码值C "abcde"这个常串中字符c所在的地址D 出错11、在X86下,有下列程序#include <stdio.h>void main(){union{int k;char i[2];}*s,a;s = &a;s->i[0] = 0x39;s->i[1] = 0x38;printf("%x\n", a.k);3文档名称文档密级}输出结果是( )A) 3839 B) 3938 C) 380039 D) 不可预知12、网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

( )A. 正确B.错误void example() 13、{int i;char acNew[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0};for(i = 0; i < 10; i++){acNew[i] = '0';}printf("%d\n", strlen(acNew));return;}的输出为:( )A 0B 10C 11 D不确定14、在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。

如果临时变量占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。

( )A. 正确B. 错误15、局部变量可以和全局变量重名,编译的时候不会出现错误,但一旦不小心,就可能导致使用错误变量,所以在定时局部变量的时候,不要和全局变量重名。

( )A. 正确B. 错误16、设有以下宏定义:#define N 3#define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为( )A) 出错 B) 42 C) 48 D)5417、 int *(*ptr)();则以下叙述中正确的是( )4文档名称文档密级A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针18、 0x12345678 在采用BigEndian中内存的排列顺序是______,在采用LittleEndian内存中的排列顺序是______.(答案从左到右内存地址依次增加)A.12 34 56 78B.34 12 78 56C.78 56 34 12D.56 78 12 3419、请指出下面程序问题#define MAX_LEN 254unsigned char Array[MAX_LEN]; int main(int argc, char *argv[]) { int i;for ( i = 0; i <= MAX_LEN; i++ ){Array[i] = i;}return;}程序的错误为():A、i = MAX_LEN时,数组越界B、argv参数形式错误C、i = MAX_LEN时,赋值溢出D、return无返回值20、 #define BUFFER_SIZE 256 void GetMemory(char **ppszBuf) { if (NULL == ppszBuf){ASSERT(0);return ;}*ppszBuf = (char *)malloc(BUFFER_SIZE);return;}void Test(void){char *pszBuf=NULL;5文档名称文档密级GetMemory(&pszBuf);strcpy(pszBuf, "hello world\r\n");printf("%s", pszBuf);free(pszBuf);return;}下面说法正确的是():A、pszBuf的值永远为NULL;B、malloc内存后没有判断是否成功;C、strcpy拷贝越界;D、GetMemory无法将申请的内存地址传递给pszBuf;21、如下程序用于把"blue"字符串打印出来: void PrintBLUE() {char pcBlue[] = {'b','l','u','e'};printf("%s",pcBlue);return;}下面描述正确的是():A、pcBlue数组初始化时没有字符串结束符;B、数组pcBlue定义时必须指明长度;22、请指出下面这段代码中的错误:unsigned long FUNC_B ( unsigned long ulCount ){unsigned long ulSum = 0 ;while( 0 <= ulCount ){ulSum += ulCount ;ulCount--;}return ulSum ;}void test(void){unsigned long ulTotal = 0;ulTotal=FUNC_B(10);printf("%lu", ulTotal); }6文档名称文档密级下面描述正确的是():A、while循环判断始终为真;B、test打印输出55;C、循环体内在执行2的32次方后,ulSum开始溢出翻转;23、此函数实现把32位IP地址(网络序)以字符串的方式打印出来: char *IpAddr2Str(unsigned long ulIpAddr){char szIpAddr[32];unsigned long ulLocIpAddr = ntohl(ulIpAddr);//把网络序转话为主机序(void)VOS_sprintf(szIpAddr, "%d.%d.%d.%d", ulLocIpAddr >> 24, (ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff,ulLocIpAddr & 0xff);return szIpAddr;}下面描述正确的是():A、数组szIpAddr空间不够;B、函数返回局部数组szIpAddr变量地址;C、输出的IP地址次序颠倒;24、如下程序用于把"blue"字符串返回:char *GetBLUE(void){char* pcColor ;char* pcNewColor;pcColor = "blue";pcNewColor = (char*)malloc(strlen(pColor));if(NULL == pcNewColor){return NULL;}strcpy(pcNewColor, pcColor);return pcNewColor;}下面描述正确的是:A、字符串“blue”存放在栈内;B、函数GetBLUE返回局部变量地址;C、内存空间分配长度不够,strcpy函数拷贝越界;25、如下代码实现中,FUNC_A为每毫秒定时执行的函数,在该函数中,需要实现每TIME_INTERVAL毫秒执行一次DO_Something()的操作。

相关文档
最新文档