C语言基础试题
C语言基础知识_测试题

C语言程序设计基础测试题一、单选[1] 下面叙述中错误的是____。
A. 复合语句中定义的函数只在该复合语句中有效B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式C. 形式参数也是局部变量D. 主函数中定义的变量在整个程序中都是有效的[2]下列说法中正确的是____。
A.带参数的宏定义中的参数是没有类型的B.宏展开将占用程序的运行时间C.宏定义命令是C语言中的一种特殊语句D.使用#include命令包含的头文件必须以“.h"为后缀[3.] 若函数的形参为一维数组,则下列说法中正确的是____。
A.调用函数时的对应实参必为数组名B.形参数组可以不指定大小C.形参数组的元素个数必须等于实参数组的元素个数D.形参数组的元素个数必须多于实参数组的元素个数[4]. 系统的标准输出设备是____。
A.键盘B.硬盘C.内存D.显示器[5] 下面叙述中正确的是____。
A.全局变量在定义它的文件中的任何地方都是有效的B.全局变量在程序的全部执行过程中一直占用内存单元C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式D. 说明函数时必须明确其参数类型和返回类型[6]. C程序的基本结构单位是____。
A.文件B.语句C.函数D.表达式[7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。
A.aa数组元素的值分别是"abcd"和"ABCD"B.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D.aa数组的两个元素中各自存放了字符'a'和'A'的地址[8]. 任何一个C语言的可执行程序都是从____开始执行的。
A.程序中的第一个函数B.main( )函数的入口处C.程序中的第一条语句[9].操作系统的作用是()。
(完整版)C语言试题库(完整版)

C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
c语言基础试题及答案

c语言基础试题及答案一、选择题1、在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式2、以下对一维整型数组a的正确说明是____A、int a(10) ;B、int n=10,a[n];C、int n;scanf(“%d”,&n);int a[n];D、#define SIZE 10int a[SIZE];3、若有定义:int a[10],则对数组a元素的正确引用是A、a[10]B、a[3.5]C、a(5)D、a[10-10]4、以下能对一维数组a进行正确初始化的语句是。
A、int a[10]={0,0,0,0,0};B、int a[10]={} ;C、int a[ ] = {0} ;D、int a[10]={10*1} ;5、若有定义:int a[3][4],则对数组a元素的正确引用是________A、a[2][4]B、a[1,3]C、a(5)D、a[10-10]6、以下能对二维数组a进行正确初始化的语句是_______A、int a[2][]={{1,0,1},{5,2,3}} ;B、int a[][3]={{1,2,3},{4,5,6}} ;C、int a[2][4]={{1,2,3},{4,5},{6}} ;D、int a[][3]={{1,0,1},{},{1,1}} ;7、若有说明:int a[3][4]={0};则下面正确的叙述是_______A、只有元素a[0][0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值08、下面是对s的初始化,其中不正确的`是_____A、char s[5]={“abc”};B、char s[5]={‘a’,’b’,’c’,’d’,’e’,’0’};C、char s[5]=””;D、char s[5]=”abcdef”;二、程序填空1、以下程序把一个由小到大的有序数列放在a[1]到a[n]中,a[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序。
计算机c语言基础试题及答案

计算机c语言基础试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. voidD. int答案:D2. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项不是C语言中的合法整型常量?A. 0x1AB. 0X1AC. 0X1GD. 0答案:C4. C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o', '\0'};C. char str[] = "Hello", "World";D. char str[] = "Hello" "World";答案:A5. 在C语言中,以下哪个运算符用于计算两个整数的和?A. &&B. ||C. +D. %答案:C6. C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable$答案:B8. 在C语言中,以下哪个选项用于定义一个全局变量?A. staticB. externC. autoD. register答案:B9. C语言中,以下哪个函数用于输出格式化的字符串到标准输出?A. printfB. scanfC. fprintfD. sprintf答案:A10. 在C语言中,以下哪个选项用于定义一个指针?A. int *p;B. int p[];C. int (*p)();D. int p[10];答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是______。
c语言试题

四、阅读程序题(写出程序的运行结果) 1.【程序】 swap1(int x,int y) { int w; w=x; x=y; y=w;} swap2(int *p1,int *p2) { int *p; p=p1; p1=p2; p2=p;} swap3(int *pa, int *pb) { int p; p=*pa; *pa=*pb; *pb=p;} main() { int a,b; int *ptr1,*ptr2; a=5; b=7; ptr1=&a; ptr2=&b; swap1(*ptr1,*ptr2); printf("data1=%d\tdata2=%d\n",*ptr1,*ptr2); swap2(ptr1,ptr2); printf("data3=%d\tdata4=%d\n",*ptr1,*ptr2); printf("data5=%d\tdata6=%d\n",a,b);
16. 以下程序的输出结果是( A )。 main() { char st[20]="hello\0\t\\"; printf("%d%d\n",strlen(st),sizeof(st)); } A.520 B.99 C.1320 D.2020 17. 不合法的main函数命令行参数表示形式是( C )。 A.main(int argv,char *arge[]) B.main(int arc,char **arv) C.main(int argc,char *argv) D.main(int a,char *c[]) 18. 若有说明语句:int a,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c 的语句是( C )。 A.scanf("%d%d%d",a,b,d); B.scanf("%d%d%d",&a,&b,&d) C.scanf("%d%d%d",&a,&b,d); D.scanf("%d%d%d",a,b,*d);
C语言程序设计基础试题及答案

第一局部C语言根底一、选择题1.以下正确的C语言标识符是〔〕A.%X B.a+b C.a123 D.test!2.已定义int a,b;那么以下不正确的C语句是〔〕A.a*=5; B.b/=2; C.a+=1.75; D.b&&=a;3.假设x、i、j和k都是整型变量,那么执行下面表达式后x的值为〔〕x=(i=4,j=16,k=32)A.4 B.16 C.32 D.524.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符〔〕A.必须是字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字、下划线中的任一字符5.下面正确的字符常量是〔〕A.“c〞 B.’\\〞C.‘w’D.〞6.设int a=2,b=0,c;那么执行语句c+=b&&a--后, c的结果为〔〕。
A.0,1 B.1,0 C.2,0 D.不确定7. 以下不正确的C语言标识符是( )A) intB) a_1_2C) ab1exeD) _x8.以下是正确的C语言标识符是( )。
A) #defineB) _123C) %dD) \n9.以下四组字符串中都可以用作C语言程序标识符的一组是( ) 。
A)print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line# pow10.下面各选项组中,均是C语言关键字的组是( ) 。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type11.以下不属于C语言关键字的是( ) 。
A) defaultB) registerC) enumD) external12.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置13.以下关于C语言的表达错误的选项是( )A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义14.在C语言中,错误的int类型的常数是( ) 。
c语言基础试题库及答案

c语言基础试题库及答案一、选择题1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的标准数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,用于实现循环的关键字是:A. whileB. forC. ifD. switch答案:A、B4. C语言中,用于定义函数的关键字是:A. functionB. defC. voidD. int答案:C5. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. int答案:B、C二、填空题1. C语言中,________关键字用于定义一个数组。
答案:int2. 在C语言中,________关键字用于定义一个指针。
答案:*3. C语言中,________关键字用于定义一个函数。
答案:int4. 在C语言中,________运算符用于求两个数的和。
答案:+5. C语言中,________运算符用于判断两个数是否相等。
答案:==三、简答题1. 请简述C语言中函数的定义和调用过程。
答案:函数定义包括函数的返回类型、函数名、参数列表和函数体。
函数调用则是通过函数名和参数列表来调用已定义的函数。
2. 解释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", sum);return 0;}```2. 编写一个C语言函数,用于交换两个整数变量的值。
c语言程序设计基础试题及答案

c语言程序设计基础试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中的合法整数?A. 0x10B. 0X1GC. 08D. 0L答案:A3. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. defD. void答案:B4. C语言中,以下哪个是正确的字符串定义?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A5. 在C语言中,以下哪个运算符用于求余?A. %B. /C. //D. %答案:A二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 如果一个函数没有返回值,应该使用________关键字声明。
答案:void3. 在C语言中,________运算符用于连接字符串。
答案:+4. C语言中,________运算符用于比较两个值是否相等。
答案:==5. 在C语言中,________关键字用于定义一个指针变量。
答案:*三、简答题(每题5分,共20分)1. 简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。
数组的每个元素可以通过指针运算来访问。
2. 解释C语言中函数原型声明的作用。
答案:函数原型声明提供了函数的名称、返回类型和参数类型,但不需要函数体。
它允许在函数定义之前调用函数,同时帮助编译器检查函数调用的正确性。
3. 什么是C语言中的预处理指令,举例说明。
答案:预处理指令是C语言中的特殊命令,用于在编译之前处理源代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 void move(ulong *array,ulong n,ulong m)
2{
3 ulong *p;
4 ulong array_end;
5 ASERT(array);
6 ASERT(n>m);
7 for(p=array+n;p>array;p--)
8{
9
*p=*(p-1);
10 }
11 *array=ayyay_end;
12. 单选择 Char *pszResource[]={“soft disk”,”hard disk”,”Cray”,”on-line routhines”,”mouse”,”keyboard”,”power cables”}; pszResource[2]指向的是() A ”hard disk”存储的起始地址 B “Cray”存储的起始地址 C “soft disk”中字符 o 的起始地址 D “soft disk”中字符 f 起始地址
}
26. struct tagABC { char cB; char sC; char cD;
char 1A; }*pAbc;
pAbc=0x100000;
那
么
(ULONG)pAbc+0x100=0x
*)pAbc+0x100=0x ;
pAbc+0x100=0x ;(ULONG*)pAbc+0x100=0x
19. Enum ENUM_A { X1; Y1;
Z1=5; A1; B1; }; Enum ENUM_A enumA=Y1; Enum ENUM_A enumB=B1; 请问 enumA= ;enumB= ;
20. #define PCHAR char * PCHAR pch1,pch2;
Sizeof(pch1)= ; Sizeof(pch2)= ;
24.请问:ulsize 等于多少?() char c[]={‘c’,’h’,’i’,’n’,’a’}; ulSize=strlen(c); A.5 B.6 C..不确定
25.改错题 下列程序目的是要实现逆序打印,请指出其错误。 main() { char *src=”hello,world” char *dest=NULL; int len=strlen(str); dest=(char *)malloc(len); char *d=dest; char *s=sre[len]; while(len--!=0) { d++=s--; } printf(“%s”,dest); return 0;
C 语言基础试题
1. 指出其中的错误:
1 void Getresult(unsigned int uiM,unsigned int uiN)
2{
3 unsigned short usIndex;
4
5 If(0==uiN)
6{
7
return;
8}
9 for(usIndex=uiN;uiIndex<=uiM;usIndex=usIndex+uiN)
,sizeof(stMax)=
,sizeof(pstMax)=
28.编程题(用 C 语言作答) 现在要对一无序数组 array[]进行折半查找,请写出算法 int BinSearch(int
array[],int iValue,int iCount),array 代表被查数组,iCount 代表数组元素总数,iValue 代表被查元素值,前提假设是 array 中的值都是唯一不重复的,要求:如果在数 组中找到此元素则返回 1,没有找到则返回-1
C. data[4]+8; D. data+2*4+4;
10. UCHAR *pszTest=\\\0; UCHAR acutest[]=\\\0;
请问 sizeof(pszTest)= , sizeof(*pszTest)= , sizeof(aucTest);
11. char str[]=”ABCDE”; char *p=str; 请计算 size(str)= ,sizeof(p)= .
10 {
11
printf(“%u”,usIndex);
12 }
13 return;
14 }
2. 指出其中的错误:
1 int a[10];
2 int main()
3{
4 int *p;
5 int i;
6 p=a;
7 for(i=0;i<=10;i++)
8
{
9
scanf(“%d”,p++);
10 }
11 printf(“\n”);
5. 下面递归函数将调整 n 个整数的数据 Array,使其前面各顺序向后移 m 个位
置(n>m),最后 m 个数变成最前面的 m 个数。例如,1,2,3,4,5,6,7,8 顺序移动
3 个位置变成(6,7,8,1,2,3,4,5)请指出其实现的 3 个错误。假设不考虑堆栈的溢
出问题,也不考虑递归引起的效率问题。
21.挑单错 将数组的内容反序拷贝到一块内存中,并返回该内存。 Char *inverse(char a[]) { int len; int i; char *p; if(NULL=a) { return NULL; } Len=sizeof(a); p=(char *)malloc(len); if(NULL==p) { reutnr NULL; } for(i=0;i<len;i++); { p[i]=a[len-i-1]; } return p; }
A.15 B.14 C.13 D.12
23.设有如下定义:() int arr[]={6,7,8,9,10}; int *ptr; 则下列程序段的输出结果为() ptr=arr; *(ptr+2)+=2; printf(“%d,%d\n”,*ptr,*(ptr+2)); A.8,10 B.6,8 C.7,9 D.6,10
; ;(char
27. UCHAR *puCharArray[10][10];
typedef union unRec {
ULONG ulIndex; USHORT usLevel[6]; UCHAR ucPos; }REC_S; REC_S stMax,*pstMax; 四字节对齐方式时:sizeof(pucCharArray)= Sizeof(*pstMax)= .
嵌入式开发——C 语言面试题
1. 用预处理指令#define 声明一个常数,用以表示一年中有多少秒(忽略闰年问 题)
8. 程序的输出为: 1 void test() 2{ 3 signed char ch; 4 int sum; 5 ch=127; 6 sum=200; 7 ch++; 8 sum+=ch; 9 printf(“%d”,sum); 10 }
9. 对于一个数组 int data[5][4],data[4][2]的地址可以表示为() A. dat+4*4+2; B. data[4]+2;
14. UCHAR *pzTest=”hello”; UCHAR *pChar=NULL; Sizeof(*pzTest) ,sizeof(pChar) .
15. 单选 Struct tagStudent {
unsigned long num; unsigned long age; };
void fun() {
输出结果是() A.2 B.4 C.8 D16
16.[单选]设有以下定义: int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; int (*prt)[3]=a,*p=a[0]; 则下列能够正确表示数组元素 a[1][2]的表达式是() A.*(ptr[1]+2*4) B.*(p+1*3+2) C.*(*(a+1*3*4)+2*4)
drawing
13. 有如下的 HASH 函数 1 Unsigned char hash(unsigned char *mac) 2{ 3 unsigned char uctmp; 4 uctmp=*mac+*(mac+1)+*(mac+2) 5 return(uctemp); 6}
已知
unsigned char cMAC[6]={0xa4,0xb5,0xc6,0xd7,0xe8,0xf9}; unsigned char *p1; unsigned char *p2; p1=cMAC; p2=p1+1; hash(p1)和 hash(p2)的值分别是(用 16 进制表示) 和 .
17. UCHAR *ppszTest[3]={“hello”,”okay”,”goodbye”}; UCHAR **ppChar=ppszTest; Sizeof(*ppszTest)= sizeof(*ppChar)=
18. char *pcColor=”world cup”; Char acColor[]=”world cup”; strlen(pcColor)= ; strlen(acColor)= ; sizeof(pcColor)= ; sizeof(acColor)= ;
12 m--;
13 if(m>0)
14 {
15 move(array,n,m);
16 }
17 return;
18 }
6. 指出下面这段代码中的错误:
1 unsigned long FUNC_B(unsigned long ulCount)
2{
3 unsigned long ulSum=0;