搜档网
当前位置:搜档网 › C语言试题选择题及答案

C语言试题选择题及答案

C语言试题选择题及答案
C语言试题选择题及答案

★第1 题:

阅读程序,选择程序的运行结果___A___。

#include <>

main()

{ int x;

x=try(5);

printf(“%d\n”, x);

}

try(int n)

{ if(n>0) return(n*try(n-2));

else return(1);

}

A. 15

B. 120

C. 1

D. 前面3个答案均是错误的

第2 题:

在下列结论中,只有一个是正确的,它是___A___。

A. 递归函数中的形式参数是自动变量

B. 递归函数中的形式参数是外部变量

C. 递归函数中的形式参数是静态变量

D. 递归函数中的形式参数可以根据需要自己定义存储类型★第3 题:

阅读程序,选择程序的输出结果__A___。

#include <>

f(int x, int y)

{ return(y-x);

}

main()

{ int (*g)(int,int);

int a=5, b=6, c=2;

g=f;

c=(*g)(a,b);

printf(“%d\n”, c);

}

A. 1

B. 2

C. 3

D. 前面3个答案均是错误的

第4 题:

阅读程序,选择程序的输出结果__D___。#include <>

char *p=”abcdefghijklmnopq”;

main()

{ while(*p++!=’e’) ;

printf(“%c\n”, *p);

}

A. c

B. d

C. e

D. f

★第6 题:

阅读程序,选择程序的输出结果___D___。#include <>

void prtv(int *x)

{ printf(”%d\n”, ++*x);

}

main()

{ int a=25;

prtv(&a);

}

A. 23

B. 24

C. 25

D. 26

第7 题:

阅读程序,选择程序的输出结果___B___。

#include <>

main()

{ static char a[ ]= ”language”, b[]=”program”;

char *ptr1=a, *ptr2=b;

int k;

for(k=0; k<7; k++)

if(*(ptr1+k)==*(ptr2+k))

printf(”%c”, *(ptr1+k));

}

A. gae

B. ga

C. language

D. 有语法错误

★第8 题:

函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。

A. 将串str1复制到串str2中,然后再连接到str3之后

B. 将串str1连接到串str2之后,再复制到str3之中

C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后

D. 将串str2复制到串str1中,再将串str1连接到str3之后

★第9 题:

设有以下程序段,则在main函数中使用语句__D___是无意义的。main()

{ int min();

int a, b, c, (*p)();

p=min;

}

min(x, y)

int x, y;

{

}

A. printf(”%d\n”, min(a,b));

B. c=min(a, b);

C. c=(*p)(a,b);

D. p++;

第10 题:

已知static int a[2][3]={2,4,6,8,10,12}; 正确表示数组元素地址的是__A___。

A. *(a+1)

B. *(a[1]+2)

C. a[1]+3

D. a[0][0]

第11 题:

已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是___C___。

A. i=*(*(x+1)+1)

B. i=x[1][1]

C. i=*(*(x+1))

D. i=*(x[1]+1)

★第12 题:

当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是

___C____.

A. c=b=a;

B. (a=c)||(b=c);

C. (a=c)&&(b=c);

D. a=c=b;

第13 题:

函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是___D___。

A. funa(int *x, int *y)

{ int *p;

*p=x; *x=*y; *y=*p;

}

B. funb(int x, int y)

{ int t;

t=x; x=y; y=t;

}

C. func(int *x, int *y)

{ *x=*y; *y=*x;

}

D. fund(int *x, int *y)

{ *x=*x+*y; *y=*x-*y; *x=*x-*y;

}

第14 题:

已知int x[]={1,3,5,7,9,11}, *ptr=x; 则不能正确引用数组元素的语句是___B___。

A. *(ptr--)

B. *(--ptr)

C. *(ptr++)

D. *(++ptr)

第15 题:

已知int *ptr1, *ptr2; 均指向同一个int类型一维数组中的不同元素,k为int类型变量,则下面错误的赋值语句是___B___。

A. k=*ptr1+*ptr2;

B. ptr2=k;

C. ptr1=ptr2;

D. k=*ptr1*(*ptr2);

★第16 题:

已知chars1[10], *s2=”ab\0cdef”; 则执行语句strcpy(s1,s2); 后,变量s1的内容为___A____。

A. ab

B. cdef

C. ab\0cdef

D. 内容不定

第17 题:

以下有关宏替换叙述中,错误的是___D___。

A. 宏替换不占用运行时间

B. 宏无类型名

C. 宏替换只是字符替换

D. 宏名必须用大写字母表示

★第18 题:

C语言主函数main最多允许有___B___个参数。

A. 1

B. 2

C. 0

D. 3

★第19 题:

C语言的编译系统对宏定义是___D___。

A. 在程序运行时进行替换处理

B. 在程序连接时进行处理

C. 和源程序中其他C语句同时进行编译的

D. 在对源程序中其他成分正式编译之前进行处理的

第20 题:

已知int **p; 则变量p是___B___。

A. 指向int的指针

B. 指向指针的指针

C. int型变量

D. 以上3种说法均是错误的

★第21 题:

已知int i; char *s=”a\045+045\’b”; 执行语句for(i=0; *s++; i++); 之后,变量i的结果是__B___。

A. 7

B. 8

C. 9

D. 以上3个答案都是错误的

第22 题:

已知int i=0, j=1, *p=&i, *q=&j; 错误的语句是___D___。

A. i=*&j;

B. p=&*&i;

C. j=*p++;

D. i=*&q;

第23 题:

已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a; 则值为3的表达式是___A___。

A. p+=2, *(p++)

B. p+=2, *++p

C. p+=3, *p++

D. p+=2, ++*p

★第24 题:

已知int a[3][4], *p=a; p+=6; 那么*p和__D___的值相同。

A. *(a+6)

B. *(&a[0]+6)

C. *(a[1]+2)

D. *(&a[0][0]+6)

第25 题:

已知int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int

(*ptr)[3]=a, *p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是__D___。

A. *((ptr+1)[2])

B. *(*(p+5))

C. (*ptr+1)+2

D. *(*(a+1)+2)

第26 题:

已知char **s; 正确的语句是__B___。

A. s=”computer”;

B. *s=”computer”;

C. **s=”computer”;

D. *s=’A’;

★第27 题:

已知char s[20]= ”programming”, *ps=s; 则不能引用字母o的表达式是__A___。

A. ps+2

B. s[2]

C. ps[2]

D. ps+=2, *ps

第28 题:

已知char b[5], *p=b; 则正确的赋值语句是__C__。

A. b=”abcd”;

B. *b=”abcd”;

C. p=”abcd”;

D. *p=”abcd”;

★第29 题:

已知char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是___D___.

A. s[i+10]

B. *(s+i)

C. *(i+s)

D. *((s++)+i)

第30 题:

已知char s[10], *p=s; 则下列语句中,错误的语句是__B___。

A. p=s+5;

B. s=p+s;

C. s[2]=p[4]

D. *p=s[0];

第31题:(103)

以下程序的输出结果是___D___。

#include <>

main()

{

int x=10, y=10;

printf(“%d %d\n”, x--, --y);

}

A. 10 10

B. 9 9

C. 9 10

D. 10 9

第32 题:

已知double *p[6]; 它的含义是___C___。

A. p是指向double类型变量的指针

B. p是double类型数组

C. p是指针数组

D. p是数组指针

★第33 题:

说明语句int *(*p)(); 的含义是___D___。

A. p是一个指向int型数组的指针

B. p是指针变量,它构成了指针数组

C. p是一个指向函数的指针,该函数的返回值是一个整型

D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针

第34 题:

已知int a, *p=&a; 则下列函数调用中错误的是___D___。

A. scanf(”%d”, &a);

B. scanf(”%d”, p);

C. printf(”%d”, a);

D. printf(”%d”, p);

第35 题:

已知int *p, a; 则语句p=&a; 中的运算符&的含义是___D___。

A. 位与运算

B. 逻辑与运算

C. 取指针内容

D. 取变量地址

第36 题:

下面程序的功能是将字符串s中所有的字符“c”删除。请选择填空。# include <>

main()

{ char s[80];

int i, j;

gets(s);

for(i=j=0; s[i]!=’\0’; i++)

if(s[i]!=’c’) ___A____

s[j]!=’\0’;

puts(s);

}

A. s[j++]=s[i];

B. s[++j]=s[i];

C. s[j]=s[i]; j++;

D. s[j]=s[i]

第37 题:

阅读下列程序,选择程序的运行结果___B___。#include <>

main()

{ int i, k, a[10], p[3];

k=5;

for(i=0; i<10; i++)

a[i]=i;

for(i=0; i<3; i++)

p[i]=a[i*(i+1)];

for(i=0; i<3; i++)

k+=p[i]*2;

printf(“%d\n”, k);

}

A. 20

B. 21

C. 22

D. 23

★第38 题:

下述程序的输出结果是__A___。

#include <>

main()

{ printf(“%f”, +1*7%2/4);

}

A.

B.

C.

D.

★第39 题:

下面程序的输出结果是___B___。

#include <>

main()

{ printf(“%d\n”, NULL);

}

A. -1

B. 0

C. 1

D. 程序是错误的

第40 题:

在下面的程序段中,每行前面的数字表示行号,则下面程序___D___。

1 main()

2 {

3 int a[3];

4 int i;

5 for(i=0; i<3; i++) scanf(“%d”, &a[i]);

6 for(i=1; i<3; i++) a[0]=a[0]+a[i];

7 printf(“%f\n”, a);

8 }

A. 没有错误

B. 第5行有错误

C. 第6行有错误

D. 第7行有错误

★第41 题:

在下面的程序段中,每行前面的数字表示行号,则下面程序___C___。

1 main()

2 {

3 float a[10];

4 int i;

5 for(i=0; i<3; i++) scanf(“%d”, &a[i]);

6 for(i=1; i<3; i++) a[0]=a[0]+a[i];

7 printf(“%f\n”, a[0]);

8 }

A. 没有错误

B. 第3行有错误

C. 第5行有错误

D. 第7行有错误

★第42 题:

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

char c[]=”\t\v\\\0will\n”;

printf(“%d”, strlen(c));

A. 14

B. 3

C. 9

D. 字符串中有非法字符,输出值不确定

第43 题:

下面程序段的运行结果是___D___(其中~表示空格)。

char a[7]=”abcdef”, b[4]=”ABC”;

strcpy(a, b);

printf(“%c”, a[5]);

A. ~

B. \0

C. e

D. f

第44 题:

若要求:如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用___D___。

A. if(s1>s2)

B. if(strcmp(s1>s2))

C. if(strcmp(s2>s1)>0)

D. if(strcmp(s1>s2)>0)

第45 题:

已知char a[20], b[20]; 则以下正确的输入语句是___B___。

A. gets(a,b);

B. scanf(“%s%s”, a, b);

C. scanf(“%s%s”, &a, &b);

D. gets(“a”), gets(“b”);

第46 题:

若二维数组a由m列,则在a[i][j]之前的元素个数为___B____。

A. j*m+i

B. i*m+j

C. i*m+j-1

D. i*m+j+1

第47 题:

下列数组说明语句中错误的是___B___。

A. double x[5]={, , , , };

B. int y[5]={0,1,3,5,7,9};

C. char c1[]={’1’,’2’,’3’,’4’,’5’};

D. char c2[]={’\x10’,’\xa’,’\x8’};

第48 题:

在C语言中,二维数组元素在内存中的存放顺序是__A___。

A. 按行存放

B. 按列存放

C. 由用户自己定义

D. 由编译器决定

★第49 题:

已知static int a[3][4]; 则数组a中个元素__B___。

A. 可在程序的运行阶段得到初值0

B. 可在程序的编译阶段得到初值0

C. 不能得到确定的初值

D. 可在程序的编译或运行阶段得到初值0

★第50 题:

语句typedef long class的作用是___D___。

A. 建立了一种新的数据类型

B. 定义了一个整型变量

C. 定义了一个长整型变量

D. 定义了一个新的数据类型标识符

第51 题:

已知staticint a[3][4]={0}; 则下面正确的叙述是__D___。

A. 只有元素a[0][0]可以得到初值0

B. 此说明语句是错误的

C. 数组a中每个元素都可得到初值,但其值不一定为0

D. 数组a中每个元素均可得到初至0

第52 题:

以下能对外部的二维数组a进行初始化错误的语句是___C___。

A. int a[2][3]={0};

B. int a[][3]={{1,2}, {0}};

C. int a[2][3]={{1,2}, {3,4}, {5,6}};

D. int a[][3]={1,2,3,4,5,6};

★第53 题:

以下能对外部的二维数组a进行正确初始化的语句是__B___。

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}};

★第54 题:(105)

为了求i的3次方,请选择一个表达式填入___D____,使程序可以正确执行。

#define CUBE(x) (x*x*x)

main()

{ int i=4;

print(“\n%d”, CUBE( ));

}

A. i*i*i

B. x*x*x

C. x

D. i

第55 题:

已知int a[10]; 则对a数组元素的正确引用是__D___。

A. a[10]

B. a[]

C. a(5)

D. a[10-10]

★第56 题:

在C语言中,引用数组元素时,其数组下标的数据类型允许是__C___。

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

★第57 题:

已知char str[]=”ab\n\012\\\””; 则执行语句:printf(“%d”, strlen(str));的结果是___C____.

A. 3

B. 4

C. 6

D. 12

第58 题:

下面关于字符串的说明中,错误的是__A___。

A. char str[7]=”FORTRAN”;

B. char str[]=”FORTRAN”;

C. char *str=”FORTRAN”;

D. char

str[]={’F’,’O’,’R’,’T’,’R’,’A’,’N’,’\0’};

第59 题:

以下程序段的输出是___A____。

static char a[]=“-12345”;

int k=0, symbol, m;

if(a[k]==’+’||a[k]=’-’)

symbol=(a[k++]==’+’)1:-1;

for(m=0; a[k]>=’0’&&a[k]<=’9’; k++)

m=m*10+a[k]-‘0’;

printf(“number=%d\n”, symbol*m);

A. number=-12345

B. number=12345

C. number=-10000

D. number=10000

第60 题:

已知char str1[10], str2[10]={“books”}; 则在程序中能够将字符串“books”赋给数组str1的正确语句是___B___。

A. str1={“books”};

B. strcpy(str1, str2);

C. str1=str2

D. strcpy(str2, str1);

★第61 题:

若有以下语句,则正确的描述是___B___。

static char x[]=“12345”;

static char y[]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’};

A. x数组和y数组的长度相同

B. x数组长度大于y数组长度

C. x数组长度小于y数组长度

D. x数组等价于y数组

第62 题:

在下述对C语言字符数组的描述中错误的是___C___。

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以进行整体输入/输出

C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D. 字符数组的下标从0开始

第63 题:

要说明一个有10个int元素的数组,应当选择语句___A____。

A. int a[10];

B. int a[2,5];

C. int a[];

D. int *a[10];

★第64 题:

已知char s[5], c; register char b; 则调用函数scanf的正确语句是___D___。

A. scanf(“%s%c”, s, c);

B. scanf(“%d%c”, &b, &c);

C. scanf(“%d%c”, b, &c);

D. scanf(“%s%c”, s, &c);

第65 题:

错误的说明语句是__D___。

A. static char word[]={‘T’, ‘u’, ‘r’, ‘b’, ‘o’, ‘\0’};

B. static char word[]={“Turbo\0”};

C. static char word[]=“Turbo\0”;

D. static char word[]=‘Turbo\0’;

★第66 题:

请选择下列程序的运行结果___A___。

#include <>

int d=1;

fun(int p)

{ int d=5;

d+=p++;

printf(“%d ”, d);

}

main()

{ int a=3;

fun(a);

d+=a++;

printf(“%d”, d);

}

A. 8 4

B. 9 6

C. 9 4

第67 题:

请选择下列程序的运行结果__D___。#include <>

try()

{ static int x=3;

x++;

return(x);

}

main()

{ int i, x;

for(i=0; i<=2; i++)

x=try();

printf(“%d\n”, x);

}

A. 3

B. 4

C. 5

D. 6

★第68 题:

请选择下列程序的运行结果___C___。#include <>

fun(int *p)

{ int a=10;

*p=a;

++a;

}

main()

{ int a=5;

fun(&a);

printf(“%d\n”, a);

}

A. 5

C. 10

D. 11

★第69 题:

以下错误的描述为__C___。

A. 在函数之外定义的变量称为外部变量,外部变量是全局变量

B. 在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量

C. 外部变量定义和外部变量声明的含义相同

D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。

★第70 题:

在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是___D___。

A. extern

B. register

C. auto

D. static

★第71 题:

C语言中,对于存储类型为___D___的变量,只有在使用它们时才占用内存单元。

A. static和auto

B. register和extern

C. register和static

D. auto和register

第72 题:

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是__B___。

A. 地址传递

B. 值传递

C. 由实参传给形参,并由形参传回来给实参

D. 由用户指定传递方式

第73 题:

以下描述错误的是___D___。

A. 不同函数中可以使用相同的变量名

B. 形式参数是局部变量

C. 一个函数内部定义的变量只能在本函数范围有效

D. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

★第74 题:

C语言中函数返回值的类型是由__D___决定的。

A. return语句中的表达式类型

B. 调用该函数的主调函数类型

C. 调用函数时临时

D. 定义函数时所指定的函数类型

★第75 题:

已知int* p(); 这里的p是__C___。

A. 指向int类型的指针变量

B. int类型的指针数组

C. 一个函数,该函数的返回值是指向int类型的指针变量

D. 一个指向函数的指针变量,该函数的返回值是int类型

★第76 题:

以下叙述中错误的是___C___。

A. 在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B. 在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C. 在C语言中,外部变量的隐含类别是自动存储类别

D. 在C语言中,函数形参的存储类型是自动(auto)类型的变量

第77 题:

已知函数abc的定义为:

void abc()

{……}

则函数定义中void的含义是___A___。

A. 执行函数abc后,函数没有返回值

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

C语言基本选择题及参考答案

C语言基本选择题及参考 答案 The pony was revised in January 2021

计算机程序设计基础(C语言) 单项选择练习题 一、基本概念 1.C语言程序是由C构成的。 A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从C开始执行。 A)程序中第一条可执行语句?B)程序中第一个函数 C)程序中的main函数?D)包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A)程序文件的开始B)程序文件的最后 C)它所调用的函数的前面D)程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 6.下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7.下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 D.C程序一定由函数构成的。 8.下列关于C语言的说法错误的是(B)。 A)C程序的工作过程是编辑、编译、连接、运行 B)C语言不区分大小写。 C)C程序的三种基本结构是顺序、选择、循环

函数练习题(C语言)带答案

C语言函数练习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B )可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)m ain可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)m ain函数必须出现在所有函数之后 D)m ain函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D )形参可以是常量、变量或表达式 7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 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 )

C语言基础练习100题(含答案)

C语言基础练习100题(含答案) 欧阳学文 雷柳青编排 1、下面程序的输出是________ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是________. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是__________. A) '\t' B) "A" C) 65 D) A 4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码 5、设int a=12,则执行完语句a+=a=a*a 后,a的值是________ A) 552 B) 264 C) 144 D) 264 6、执行下面程序中的输出语句后,输出结果是______. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 7、下面程序的输出是__________. #include void main() {int x=023; printf("%d\n",x); } A) 17 B) 18 C) 23 D) 24 8、下面程序的输出是___________. #include void main() {char ch1,ch2; ch1='A'+'5''3'; ch2='A'+'6''3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 9、以下程序的输出结果是________. #include void main() { int x=10,y=10; printf("%d %d\n",x,y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y)); 上面程序片段的输出结果是_______.

c语言笔试题目及答案

c语言笔试题目及答案 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。 c语言笔试题目及答案 一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选 项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指________。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)下列关于栈的描述中错误的是________。 A)栈是先进后出的线性表

B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 答案:B 评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ________。 A)冒泡排序为n2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n一1)/2 答案:D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 A)log2n B)n/2 C)n D)n+l 答案:C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较

2020最新C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新C语言考试题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。

A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言选择题#精选.

1 C语言程序由函数组成,以下说法正确的是( A ). A)主函数可以在其它函数之前,函数内不可以嵌套定义函数 B)主函数可以在其它函数之前,函数内可以嵌套定义函数 C)主函数必须在其它函数之前,函数内不可以嵌套定义函数 D)主函数必须在其它函数之前,函数内可以嵌套定义函数 2 以下说法中不正确的是( A )。 A) 主函数main中定义的变量在整个文件或程序中有效 B) 不同的函数中可以使用相同名字的变量 C) 形式参数是局部变量 D) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 3 下面函数 f(double x) {printf(“%6d\n”,x);} 的类型为( C ). A) 实型B)void 类型C)int 类型D) A)、B)、C)均不正确 4 以下说法中正确的是( C ). A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行

D)C语言程序中,main函数必须放在程序的开始部分 5 以下正确的函数定义是( C ). A) double fun(int x,int y); {int z; z=x+y; return z;} B) fun(int x,y) {int z; return z;} C) double fun(int x,int y) {double z; z=x+y; return z;} D) double fun( x, y) {int x,y; double z; z=x+y; return z;} 6 定义为void类型的函数,其含义是( A ). A)调用函数后,被调用的函数没有返回值 B)调用函数后,被调用的函数不返回 C)调用函数后,被调用的函数的返回值为任意的类型D)以上三种说法都是错误的 7 设有如下定义: int x=10,y=3,z ; 则语句

c语言练习题带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53.

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

C语言选择题复习精选.

选择题复习 1.表达式“(a=4*5, b=a*2), b-a, a+=2”的值是(C)。 A.2 B.20 C.22 D.42 2.以下是一个自定义函数的头部,其中正确的是(C )。 A.int fun(int a[ ], b) B.int fun(int a[ ], int a) C.int fun(int*a, int b) D.int fun(char a[ ][ ], int b) 3.以下数组声明语句中正确的是(D )。 A.int n, a[n]; B.int a[ ]; C.int a[2][3]={{l},{2},{3}}; D.int a[ ][3]={{l},{2},{3}}; 4.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70 000正确地保存在一个变量a中,该变量声明语句应当是(B )。 A.int a; B.long int a; C.unsigned int a; D.unsigned int a; 5.以下声明语句中,用于声明一个行指针变量的是(C )。 A.int *p(int); B.int *p; C.int (*p)[3]; D.int (*p)(int); 6.在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中(A )不能用做该变量的名字。 #include int y; main( ) { int a=1; fun(a); } int fun(int x) {_______; /*int型变量声明语句位置*/ … /*若干执行语句*/ } A.x B.y C.fabs D.fun 7.如有语句“int x,y=0,z,*p[3]; p[0]=&x; p[1]=&y; p[2]=&z;”,以下表达式中有语法错误的是(B )。 A.y++ B.p++ C.*++p[0] D.(*p[0])++ 8.设有声明语句“int a[3][3]={1,2,3,4,5,6,7,8,9};”,以下语句中除(D )外均能输出a[1][2]的值。 A.printf("%d ",*(*(a+1)+2)) B.printf("%d ",*(&a[2][0]-1)); C.printf("%d ",*(a[1]+2)); D.printf("%d ",*(a+1)[2]); 9.已知有声明语句int x=8,则下列表达式中,值为2的是(B )。 A.x+=x-=x B.x% = x-2 C.x>8?x=0:x++ D.x/= x + x 10.以下关于函数的叙述中正确的是(D )。 A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B.在函数体中至少必须有一个return语句 C.在函数体中可以定义另一个函数 D.在函数体中可以调用函数自身 11.若有声明语句“int a[10], b[3][3];”,则以下对数组元素赋值的操作中,不会出现越界访问的是(D )。 A.a[-1]=0 B.a[10]=0 C.b[3][0]=0 D.b[0][2]=0

C语言试题-选择题及答案

C语言试题 ★第1 题: 阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2; g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。 #include

char *p=”abcdefghijklmnopq”; main() { while(*p++!=?e?) ; printf(“%c\n”, *p); } A. c B. d C. e D. f ★第6 题: 阅读程序,选择程序的输出结果___D___。 #include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23 B. 24 C. 25 D. 26 第7 题: 阅读程序,选择程序的输出结果___B___。 #include main() { static char a[ ]= ”language”, b[]=”program”; char *ptr1=a, *ptr2=b; int k; for(k=0; k<7; k++) if(*(ptr1+k)==*(ptr2+k)) printf(”%c”, *(ptr1+k)); } A. gae B. ga C. language D. 有语法错误 ★第8 题: 函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中 C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后

c语言选择题及答案

1﹑以下选项中不合法的用户标识符是( C )。 A)_123 B)PP C)A$ D)Dim 2﹑C语言提供的合法数据关键字是( A )。 A)float B) Sagned C) Integer D) ing 3﹑判断char型变量c1是否为小写字母的正确表达式为( D )。 A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z') C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z') 4﹑C语言可执行程序开始执行点为( C ). A)程序中第一条可执行语句B) 程序中第一个函数 C)程序中的main函数D) 包含文件中的第一个函数 @ 5﹑以下说法中正确的是( C ). A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行 D)C语言程序中,main函数必须放在程序的开始部分 6﹑设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是( C )。A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;} 7﹑若有说明和语句: int a=5,b; b=a++; 此处变量b的值是( C )。 A)7 B)6 C)5 D) 8﹑以下程序的输出结果是( D )。 ~ int x=10,y=10; printf("%d %d\n",x--,--y); A) 10 10 B) 9 9 C) 9 10 D) 10 9 9﹑C语言用( C )表示逻辑“真”值。 A)true B)t或y C)非零整数值D)整数0 10﹑指出下面正确的输入语句( B )。 A) scanf("a=b=%d",&a,&b) ; B) scanf("%d,%d",&a,&b) ; C) scanf("%c",c) ; D) scanf("% f%d\n",&f) ; 11﹑若x=5,y=3 则y*=x+5; y的值为(D )。 A)10 B)20 C)15 D)30 · 12﹑设整型变量n的值为2,执行语句"n+=n-=n*n;"后,n的值是( C )。 A)0 B)4 C)- 4 D)2 13﹑以下程序的运行结果是( D )。 void main() { int a=65; char c=’A’;

C语言试题选择题及答案

★第1 题: 阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2;

g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。#include char *p=”abcdefghijklmnopq”; main() { while(*p++!=’e’) ; printf(“%c\n”, *p); } A. c B. d C. e D. f ★第6 题: 阅读程序,选择程序的输出结果___D___。#include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

C语言试题及答案06612

大学C语言考试题库 第1章C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于C 源程序是高级语言程序,因此一定要在TC 软件中输入 B. 由C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有32 个关键字和9 种控制语句。

(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在C 语言程序中允许出现的字符集是ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以/* 符号作为开始标记,以*/ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3) 在C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是 C 。 A. 0 B. '0' C. '\0' D. "0" (5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 B 。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为 D 。 A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,|| (7) 表达式!x||a==b 等效于 D 。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是 A 。 A. 0,0 B. 0,1 C. 1,0 D. 1,1

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言面试题(经典全)

1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是: switch的参数不能为实型。(只能是int char) 9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 函数名: atol 功能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

C语言大赛题目精选(带答案)

第1题歌手大赛问题 题目: 青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分。 3种方法: 分别要求使用到排序,数组,函数,指针。 分析: 这道题的核心程序是排序,将评委打的10个分数利用数组按增序(或降序)排列,计算数组中除了第一个和最后一个分数以外的数的平均分 答案: #include double Aver(int p[],int count) //求出结果,p为整型数组,count为数组大小{double result=0; for(inti=0;i

for(int k=1;k

相关主题