C语言复习题85424
一、填空:
1.整型数据变量声明中所使用的关键字是 int 。
2.设float x=2.5,y=4.7; int a=7;,表达式x+a%3*(int)(x+y)%2/4的值为 2.5 。
3.printf(“My age is %d.”, age); 函数中,使用%d表示输出的是整型类型的数
据。
4.每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
5.设int x=5,y,z;执行y=z=x;x=y==z;后,变量x的结果是 1 。
6. C 语言中,数组在内存中占一片的存储区,由代表它的首地址。数
组名是一个,不能对它进行赋值运算。
7.函数的参数为char *类型时,形参与实参结合的传递方式为。
8.C程序编译、连接后生成程序。
9.当a=10,b=4,c=2时,表达式f=a>b>c的值是。
10.字符串数组与字符数组的在长度至少一个元素。
11.若函数的形式参数是指针类型,则实参可以是或。
12.如定义语句为char a[ ]= "windows",b[ ]= "7";,语句printf("%s",strcat(a,b));的输出结果
为。
13.请在下面的程序段中填写正确的格式说明符:
int main(void)
{ float salary;
printf(“Enter your desired monthly salary:.”, salary);
}
14.C程序编译后生成程序。
15. C 语言的标识符只能由、数字和三种字符组成。
16.设有定义int y; ,分别写出描述“y是偶数”的表达式,“y是奇
数”的表达式。
17.C语言没有字义专门的字符串变量类型,而是把它存储在数组中。
18.字符串常量"\\\22a,0\n\""的长度是。
19.字符串存储到数组中时,在数组的最后将增加一个标记字符串结束的字
符。
20.设有定义语句static int a[3][4] ={{1},{2},{3}}; 则a[1][0]值为,a[1][1] 值
为,a[2][1]的值为。
21.假设int a=7; 执行语句a+=a-=a*a; 后,a的值是。
22.若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义
函数要求不返回一个值,则应在该函数说明时加一个类型说明符
23.若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)
后x的值为。
24.设int x=10, y, z; 执行y=z=x; x=y= =z;后,变量x的结果是。
25.求解赋值表达式a=(b=10)%(c=6),则“表达式值、a、b、c ”的值依次为,, , 。
26.求解逗号表达式(x=a=3,6*a )后,“表达式值、x、a”的值依次为, , 。
27.变量的指针是指该变量的。
28.C语言中,逻辑值“假”用表示,逻辑“真”用1表示。
29.若有定义:int a[]={1,3,5,7,9,11,13},*p=a;则*(p+2)的值是,为什
么。
30.判断变量a、b 的值均不为0 的逻辑表达式为。
31.C语言的变量名可以使用的字符包括大写字母、小写字母、和下划线,而且必
须以和开头。
32.若有定义:char a[]={‘a’,’b’, ’c’, ’d’, ’e’, ’f’, ’g’},*p=a;则*(p+2)的值
是。
33. C 语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必
须是正整数、0、或者。
34.在C语言中,在内存中存放二维数组元素的顺序是。
35.假设在一维数组a[20]中,元素a[4]的指针为p,那么p+4所指向的数据元素
是。
36.下面程序块执行完成后,m的值是。
m=1; n=263;
do{
m*=n%10;
n/=10;
}
while(n);
37.标准C语言程序总是从开始执行的。
38.执行语句for(i=1;i++<4;);后,变量i的值是,如果语句for(i=1;++i<4;);
则执行后,变量i的值是。
39.设int x=1,y=3;执行x=9-(y--)-(--y);后,变量x的结果是,执行
x=9-(--y)-(--y);后,变量x的结果是。
40.已知有如下定义:char str1[10]= "abcde", str2[10]= "xyz";,则执行下列语句,
输出结果为。
printf("%d", strlen(strcpy(str1, str2)));
41.定义int a=10;,其中变量a在内存中的地址为2000,如果再定义指针变量int *p;,
并使p指向变量a,则对指针变量p的赋值语句是。
42.若有char a[3]=“as”;则*a= ,*(a+2)= 。
43.函数的形式参数的作用域为,全局的外部变量和函数体内定义的局部变量
重名时,_________变量优先。
44.函数调用中,函数中的形参和调用时的实参都是数组名时,传递方式为,都
是变量时,传递方式为,两种方式中,方式可以实现在函数中修改实参变量的原值。
45.己知j=5,a=10,下列语句j=(a=j+2,a+3,a-5);执行后整型变量j和a的值分别
是和。
46.数组名表示。
47.字符串“ab\n\\012\\\””的长度是。
48.下面程序段中循环体的执行次数是。
int a=8,b=0;
do{
b+=1;
a-=1+b;
}
while(a>=0);
49.已知:int a[2][3]={{1,3},{8}},则a[1][1]的值为。
50.字符串常量“\\22a,0\n\””的长度是。
51.如果一个函数没有返回值,那么该函数的类型为。
52.C语言表达式5>2>7>8 的值是。
53.若有定义:char ch;
(1)定义指针p,并指向变量ch的语句是。
(2)若已定义char *p;,使指针p指向变量ch的赋值语句是; 。
(3)在(1)的基础上,通过指针p实现变量ch读入字符的scanf调用语句是。
(4)在(1)的基础上,通过指针p给变量ch赋字符’a’的语句是。
(5)在(1)的基础上,通过指针p用格式输出函数printf输出ch中字符的语句是。
54.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main( )
{ char ch;
ch=getchar();
if( )
printf("It is an English character\n");
else if( )
printf("It is a digit character\n");
else if( )
printf("It is a space character\n");
printf("It is other character\n"); }
55.search函数的功能是从数组a[10]中对关键字m进行查找,请填空完成程序,实现功能。
#include
int search( int a[10], int m)
{
int i;
for(i=0; i<=m; i++)
if( )
return i;
return -1;
}
void main( )
{ int a[10],m, i, n;
for(i=0; i<10;i++)
scanf("%d",&a[i]);
scanf("%d", &m);
n=search( );
if( )
printf("OK,found! %d", n+1);
else
printf("sorry, no found!");
}
56.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。用输
入0来结束输入,用i,j来放统计数,请填空完成程序。
void main()
{ n,i=0,j=0;
printf(“input a integer,0 for end\n”);
scanf(“%d”,&n);
while ( )
{
if(n>0) i= ;
else j=j+1;
}
printf(“i=%4d,j=%4d\n”,i,j);
}
57.编程计算1+3+5…+99的值
main()
{ int i, sum = 0;
i=1;
while ( )
{ sum = sum + i;
; }
printf("sum=%d\n", sum);
}
58.有一个一维数组存放10个学生的成绩,用一个函数求平均分、最高分和最低分
#include
;
void main()
{
float average(float array[], int n);
float ave, score[10];
int i;
printf("please enter 10 scores:");
for(i=0; i<10;i++)
scanf( );
ave=average(score,10);
printf("max=%6.2f\n", Max);
printf("min=%6.2f\n", Min);
printf("average=%6.2f\n", ave);
}
float average( float array[], int n)
{ int i;
float aver,sum=array[0];
;
for(i=1; i { if(array[i]>Max) Max=array[i]; else if(array[i] Min=array[i]; sum=sum+array[i]; } aver=sum/n; return (aver); } 59.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空 #include void main() { int a[10],i,x; printf(“input 10 integers:”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“input the number you want to find x:”); scanf(“%d”,); for(i=0;i<10;i++) if( ) break; if( ) printf(“the pos of x is:%d\n”,i); else printf(“can not find x!\n”); } 60.求一个3*4矩阵中,元素最大值及所在的行号、列号。请填空完成程序,实现功能 #include int main() { int i,j,row=0,colum=0,max; int a[3][4]; for (i=0;i<=2;i++) for (j=0;j<=3;j++) scanf( ); ; for (i=0;i<=2;i++) for (j=0;j<=3;j++) if ( ) { max=a[i][j]; row=i; colum=j; } printf("max=%d\n",max); printf("row=%d\n",row); printf("colum=%d\n",colum); return 0; } 61.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。 #define N 10 char str[N]; sort(char str[N]); void main() { int i,flag; for(i=0;i<10;i++) scanf("%c",&str[i]); sort(_ __); for(i=0;i printf("%c",str[i]); printf("\n"); } void sort(char str[N]) { int i,j; char t; for(j=1;j for(i=0;i if(str[i]> (2) ) { t=str[i]; ____________; ____________; } } 62.下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应 字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。 #include int main(void) { char a[100]="Hello World!"; char b[100]="Hello Chengdu!"; ; /* 完成对应字符的比较,并判定一个字符串是否结束了*/ while( ) { i++; } printf("%d\n", a[i]-b[i] ); return 0; 63.程序填空:编程计算1+3+5+……+101的值。 #include int main(void) { int i, sum = 0; for (i = 1; ; ) sum = sum + i; printf("sum=%d\n", sum); return 0; } 64.编写程序,输入一个数字字符(‘0’—‘9’)存入变量c,把c转换成它所对应的 整数存入n,如:字符‘0’所对应的整数就是0。请填空。 #include void main() { char c; int n; printf(“please input a char:\n”); c = ; n = ; printf(“%c %d”,c,n); } 65.下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。 #include void main() { ; int s[]={1,-3,0,-9,8,5,-20,3}; for(i = 0,p = 0;i < 8;i++) if(s[i] > s[p]) ; ; } 66.以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩, 当输入负数时结束输入.请填空. #include int main(int argc, char* argv[]) { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ) { if(x>amax) amax=x; if( ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); return 0; } 二、选择 1.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是。 A.a[p] B.p[a] C.*(p+2) D.p+2 2.在C语言中,以作为字符串结束标志 A.’\n’ B.’ ’ C.’0’ D.’\0’ 3.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 4.对二维数组的正确定义是 A.int a[ ] [ ]={1,2,3,4,5,6}; B.int a[2] [ ]={1,2,3,4,5,6}; C.int a[ ] [3]={1,2,3,4,5,6}; D.int a[2,3]={1,2,3,4,5,6}; 5.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。 A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b 6.C程序的基本结构单位是: A、文件 B、语句 C、函数 D、表达式 7.下面程序段中循环体的执行次数是: int a=10,b=0; do{ b+=2;a-=2+b; } while(a>=0); A、1 B、2 C、3 D、4 8.以下可用作C语言用户合法的标识符的是: A、B.C.Tom B、3a6b C、_6a7b D、$ABC 9.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是: A、6 B、0 C、2 D、1 10.若有以下程序段int c1=1,c2=2,c3; c3=1.0/c2*c1;,则执行后,c3中的值是()。 A、0 B、0.5 C、1 D、2 11.设整型变量a=2,则执行下列语句后,浮点型变量b的值不是0.5的是()。 A、b=1.0/a B、b=(float)(1/a) C、b=1/(float)a D、b=1/(a*1.0) 12.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是()。 A、相同 B、x大于y C、x小于y D、以上答案都不对 13.以下选项中,不能作为合法常量的是( )。 A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 14.C语言中运算对象必须是整型的运算符是( )。 A、%= B、/ C、= D、<= 15.以下能够正确定义函数首部的形式是。 A、double fun(int x, int y) B、double fun(int x; int y) C、double fun(int x, int y); D、double fun(int x,y); 16.语句a=25.0+60.0*n/scale+2;,如果n=6.0,scale=2.0,则该语句最后的运行结果a值是 ()。 A、257 B、194.5 C、207.0 D、96.25 17.下列关键字,哪个是双精度数据类型的关键字()。 A、int B、float C、double D、char 18.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: A. 2 B. 3 C. 4 D.无确定值D) 9 19.下列哪个是命名正确的变量名()。 A、7num B、student C、#No D、float 20.C语言中规定函数的返回值的类型是由: A、return语句中的表达式类型所决定 B、调用该函数时的主调用函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定函数类型决定 21.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其配对 的是: A、其之后最近的if B、其之前最近的if C、缩排位置相同的if D、同一行上的if 22.若有语句int *p,a=4;p=&a,下面均代表地址的一组选项是: A、a,p,*&a B、&*a,&a,*p C、*&p,*p,&a D、&a,&*p,p 23.下列关于C语言的说法错误的是()。 A、C程序的工作过程包括编辑、编译、链接、运行 B、C语言不区分大小写 C、C程序中使用数组存储字符串,数组的单元数至少应该比要存储的字符数多1 D、C程序中必须有一个main()函数 24.在C语言程序中,表达式5%2的结果是()。 A、2.5 B、2 C、1 D、3 25.下列说法错误的是。 A、在C语言中,break语句用于提前终止循环 B、在C语言中,continue语句只能用于switch语句和循环语句中 C、在C语言中,continue语句用于提前结束本次循环 D、在C语言中,break语句只能用于switch语句和循环语句中 26.已知:int a=2,b=3;,则执行表达式c=b*=a-1后,变量c的值为: A、5 B、3 C、2 D、4 27.在C语言中,以()作为字符串结束标志。 A、\n B、\s C、\a D、\0 28.在C语言中对一维整型数组的正确定义为。 A)int a(10); B)int n=10,a[n]; C)int n;a[n]; D)#define N 10 int a[N]; 29.下面( )表达式的运算结果是4。 A、11/3 B、11.0/3 C、(float)11/3 D、(int)(11.0/3+0.5) 30.下列数据中属于“字符串常量”的是() A、“a” B、23 C、‘abc\0’ D、‘a’ 31.语句while(!E);中的表达式!E等价于: A、E==0 B、E!=1 C、E!=0 D、E==1 32.下面程序的运行情况是: char a[3],b[]="abcde"; a=b; printf("%s", a); A、运行后将输出abcde B、运行后将输出ab C、运行后将输出abc D、编译时出错 33.假设a=1; b=2; c=2;下面程序段的运行结果是: while(a { t=a; a=b; b=t; c--; } printf(“%d, %d, %d”, a,b,c); A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,1 34.对于while语句,错误的说法是( )。 A、用条件控制循环体的执行次数 B、循环体至少要执行一次 C、循环体有可能一次也不执行 D、循环体中可以包含若干条语句 35.C语言的if语句中,用作判断条件的表达式为: A、任意表达式 B、关系表达式 C、算术表达式 D、逻辑表达式 36.sizeof(float) 是: A、一个整型表达式 B、一个双精度型表达式 C、一种函数调用 D、不合法 37.putchar函数可以向终端输出一个: A、实型变量值 B、字符或字符型变量值 C、整型变量表达式值 D、字符串 38.下面语句中,错误的是: A、int i;int *p;p=&i; B、int i,*p;p=&a; C、int i,*p=&a; D、int i,*p;*p=i; 39.在说明语句:int *f(); 中,标识符代表的是:。 A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名 40.在函数调用时,以下说法正确的是。 A、函数调用后必须带回返回值 B、实际参数和形式参数可以同名 C、函数间的数据联系不能使用全局变量 D、主调函数和被调函数总是在同一个文件里 41.若有如下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为: A、float B、int C、char D、double 42.以下能正确进行字符串赋值操作的是。 A、char s[5]={"12345"}; B、char s[5]={'1','2','3','4','5',‘6’}; C、char *s;*s="12345"; D、char *s="12345"; 43.定义了int型二维数组a[6][7]后,如果是行优先存储,则数组元素a[3][4]前的数组元素 个数为。 A、24 B、25 C、18 D、17 44.关于创建函数的目的,以下正确的说法是: A、提高程序的执行效率 B、提高程序的可读性 C、减少程序的篇幅 D、减少程序文件所占内存 45.在C语言中,函数的数据类型是指 A 函数返回值的数据类型 B. 函数形参的数据类型 C 调用该函数时的实参的数据类型 D.任意指定的数据类型 46.下列四组选项中,正确的C语言标识符是。 A、%x B、a+b C、a123 D、123 47.下列四组字符串中都可以用作C语言程序中的标识符的是。 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 48.在C语言程序中,表达式5%2的结果是。 A、2.5 B、2 C、1 D、3 49.若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是 A.1 B.4 C.4.333333 D.4.6 50.一个C程序的执行是从: A、本程序文件的main函数开始,到本程序文件的最后一个函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到main函数结束 D、本程序文件的第一个函数开始,到本程序的main函数结束 51.若给定条件表达式(M)?(a++):(a--),则期中表达式(M): A、和(M==0)等价 B、和(M==1)等价 C、和(M!=0)等价 D、和(M!=1)等价 52.以下对一维数组a的正确说明是: D A、char a(10); B、int a[]; C、int k=5,a[k]; D、char a[3]={‘a’,’b’,’c’}; 53.设char *s= "\ta\017bc "; 则指针变量s指向的字符串所占的字节数是: A、5 B、6 C、7 D、9 54.调用语句“func((exp1,exp2),(exp3,exp4,exp5));”中含有个实参。 A、2 B、3 C、4 D、1 55.若有定义“int a[10];”,则对a数组元素的正确引用是: A、a[10] B、a[10-10] C、a(5) D、a[3.5] 56.下面程序段的运行结果是: char c[5]={‘a’,’b’,’\0’,’c’,’\0’}; printf(“%s”,c); A、'a''b' B、ab C、ab□c D、abc 57.语言规定,在一个源程序中,main函数的位置: A、必须在最开始 B、必须在系统调用的库函数的后面 C、可以任意 D、必须在最后 58.能够完成如右图所示函数计算的程序段是: A、y=-1; if (x!=0) if (x>0) y=1; else y=0; B、y=-1; if (x>0) y=1; else y=0; C、y=0; if (x>=0) if (x>0) y=1; else y=-1; D、if (x>=0) if (x>0) y=1; else y=0; else y=-1; 59.若w=1,x=2,y=3,z=4,则条件表达式w>x?w:y A、4 B、3 C、2 D、1 60.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: A、p=q B、*p=*q C、n=*q D、p=n 61.有语句:int a[10],;则是对指针变量p的正确定义和初始化。 A、int p=*a; B、int *p=a; C、int p=&a; D、int *p=&a; 三、读程序写结果 1.写出下面程序的输出结果 #include #define N 4 main() { int i; int x1=1,x2=2; printf("\n"); for(i=1;i<=N;i++) { printf("%4d%4d",x1,x2); if(i%2==0) printf("\n"); x1=x1+x2; x2=x2+x1; } } 2.写出下面程序的输出结果(name变量输入的字符串是John) #include #define PRAISE “What a super marvelous name!” int main(void) { char name[40]; printf(“what’s your name? \n”); scanf(“%s”, name); printf(“Hello, %s, %s \n”, name, PARISE); return 0; } 3.写出下面程序的输出结果(name变量输入的字符串是John) #include main( ) { char ch; ch=getchar( ); switch(ch) { case ‘A’ : printf(“%c”,’A’); case ‘B’ : printf(“%c”,’B’); break; default: printf(“%s\n”,”other”); } } 4.写出下面程序的输出结果(name变量输入的字符串是John) #include int min( int x, int y ) { int m; if ( x> y ) m = x; else m = y; return(m); } main() { int a=3,b=5,abmin ; abmin = min(a,b); printf(“min is %d”,abmin); } 5.写出下面程序的输出结果(name变量输入的字符串是John) #include main() { int x, y =0; for(x=1;x<=10;x++) { if(y>=10) break; y=y+x; } printf(“%d%d”,y,x); } 6.写出下面程序的输出结果 #include void main( ) { static char a[]="program"; char *pa=&a[7]; while(--pa>=a) putchar(*pa); putchar('\n'); } 7.写出下面程序的输出结果 #include int f( int n ) { if (n==1) return 1; else return f(n-1)+1; } void main() { int i, j=0; for(i=1; i<3; i++) j+=f(i); printf("%d\n", j); } 8.写出下面程序的输出结果 #include void main() { int a[3][3]={2,4,6,8,10,12,14,16,18},i,s=0; for (i=0;i<=2;i++) s=s+a[i][i]; printf("s=%d\n",s); } 9.写出下面程序的输出结果 #include main() { float a,b,c,t; a=3; b=7; c=1; if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("%5.2f,%5.2f,%5.2f",a,b,c); } 10.写出下面程序的输出结果 #include int main() { int f(int); int a=2,i; for(i=0;i<3;i++) printf("%d\n",f(a)); return 0; } int f(int a) { int b=0; static c=3; b=b+1; c=c+1; return(a+b+c); } 11.假定输入的10个数为:10、11、12、13、14、15、16、17、18、19,以下程序的运行 结果是: #include int main() { int a,b,c,x; a=b=c=0; for (int i=0;i<10;i++) { scanf("%d",&x); switch(x%3) { case 0:a+=x;break; case 1:b+=x;break; case 2:c+=x;break; } } printf("a=%d,b=%d,c=%d\n",a,b,c); return 0; } 12.写出下面程序的运行结果 #include int main(void ) { int sum=10,n=1; while(n<3) { sum=sum-n; n++; } printf(“%d,%d”,n,sum); return 0; } 13.写出程序结果 #include int fun(int x) { int y=0; static int z=3; z++;++y; return(x+y+z); } void main( ) { int i,x=2; for(i=0;i<2;i++) printf("%5d",fun(x++)); } 14.写出运行结果 #include main( ) { char s[]=”abcdefg”; char *p; p=s; printf(“ch=%c\n”,*(p+5)); } 15.写出运行结果 #include void main( ) { int i, a=1; for(i=1;i<6;i++) { do { i++; a++; } while(i<4); } i++; printf("a=%d,i=%d\n",a,i); } 16.写出运行结果 #include main( ) { int a[ ]={1, 2, 3, 4, 5, 6}; int x, y, *p; p = &a[0]; x = *(p+2); y = *(p+4); printf(“*p=%d, x=%d, y=%d\n”, *p, x, y); } 17.写出运行结果 #include void main( ) { int a, b, k=4, m=6; int *p1=&k, *p2=&m; a=p1==&m; b=(-*p1)/(*p2)+7; printf("a=%d\n", a); printf("b=%d\n",b); } 18.写出运行结果 #include char s[]=”ABCD”; main() { char *p; for(p=s;p printf(“%c %s\n”,*p,p); } 19.写出程序运行结果 #include int a1=300,a2=400; void sub1(int x,int y) { 《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。 1、如果函数不要求带回值,可用void来定义函数返回值为空 2、将数组a的首地址赋给指针变量p的语句是p=a; 3、c语言表达式!(4>=6)&&(3<=7)的值是1 4、Int a=1,b=2,c=3;执行语句a=b=c;后a的值是3 5、c语言的三种基本结构是顺序结构、选择结构、循环结构 6、c语言中,数组元素的下标下限为0 7、若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 数值最大的元素下标值是2 8、结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体类型,再说明结构体变量 9、若s是int型变量,且s=6,则s%2+(s+1)%2值为1 10、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10 for(i=0,j=10,i<=j;i++,j--)k=i+j; 11、已知i=5,语句a=(i>5)?0:1;执行后整型变量a的值为1 12、字符串的结束标志是’\0’ 13、当a=1,b=2,c=3时,执行以下程序段if(a>c)b=a;a=c;c=b;后a=3 14、执行下列语句char s[3]=”ab”,*p;p=s;后,*(p+1)的值是b 15、定义int a[2][3];表示数组a中元素的个数是6 16、一个c源程序中至少包括一个main 函数 17、程序段int k=10;while(k=0) k=k-1循环体语句执行0次 18、程序#include”stdio.h”main(){int a;for(a=0;a<10;a++);printf(“%d”,a);}输出结果10 19、已知i=5,写出语句i*i+1;执行后整型变量i的值为30 20、Static int a[3][3]={1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为6 21、#define和printf都不是c语句Y 22、共同体变量所占的内存长度等于最长的成员长度Y 23、若a=3,b=2,c=1则关系表达式”(a>b)==c”的值为真Y 24、Char c[]=”Very Good”;是一个合法的为字符串数组赋值的语句Y 25、变量根据其作用域的范围可以分为局部变量和全局变量Y 26、c语言中”%”运算符的运算对象必须是整型Y 27、while和do...while循环不论什么条件下结果都是相同的N 28、如果函数值的类型和return语句中的表达式值不一致,则以函数类型为准Y 29、参加位运算的数据可以是任何类型的数据N 30、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面N 31、以下c语言常量中错误的是B A OxFF B 1.2e0.5 C 2L D‘、72’ 32、编译时系统提示错误,不能正确赋字符串的是C A char s[10]=”abcdefg”; B char t[]=”abcdefg”,*s=t; C char s[10];s=”abcdefg”; D char s[10];strcpy(s,”abcdefg”); 33、变量的指针是指该变量的地址 34、系统标准输入文件指键盘 35、定义共用体的关键字是union 36、优先级最高的运算符是C A*= B>= C(类型) D+ 37、不能作为合法的c用户定义标识符的是D AFor BPrintf CWORD Dsizeof 38、调用函数时实参是一个数组名,则向函数传送的是数组的首地址 39、定义int*p[3],则定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 40、以下不正确的定义语句是 B Adouble x[5]={2.0,4.0,6.0,8.0,1.0}; Bint y[5]={0,1,3,5,7,9}; Cchar c1[]={‘1’,’2’,’3’,’4’,’5’}; Dchar c2[]={‘\x10’,’\xa’,’\x8’}; 41、凡是函数中未指定存储类别的局部变量其隐含的存储类别为自动(auto) 42、当定义一个结构体变量时系统分配给它的内存是各成员所需内存量的总和 43、以下数组定义中不正确的是D Aint a[2][3]; B int b[][3]={0,1,2,3}; Cint c[100][100]={0}; Dint d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 44、P,p1为指针变量,a为数组名,j为整型变量,不正确的是D Ap=&j,p=p1; Bp=a; Cp=&a[j]; Dp=10; 45、合法的用户标识为B Along B_2Test C3Dmax DA.dat 46、不正确的字符串常量是A A’abc’ B”12’12” C”0” D”“ 47、在c语言程序中函数的定义不可以嵌套,但函数的调用可以嵌套 48、先用语句定义字符型变量c,然后将字符a赋给c,则c=’a’;(c=97) 49、return语句可以在同一个函数中出现多次 50、char a[10];不能将字符串”abc”储存在数组中的是 C Astrcpy(a,”abc”); B a[0]=0;strcat(a,”abc”); Ca=”abc”; Dint i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 51、功能:将一个数组中的元素按逆序存放 #include 《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0 8、有以下程序: #include C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include 1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24 对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。 笔试题 一、填空题(每个空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语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7) 2014-06-13 06:30:01 阅读( 135 ) 标签: 一、选择题(1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)在数据结构中,从逻辑上可以把数据结构分为_______。 A)动态结构和静态结构 B)紧凑结构和非紧凑结构 C)线性结构和非线性结构D)内部结构和外部结构 答案:C 评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。 (2)若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。 A)1,4,3,2 B)2,3,4,l C)3,1,4,2 D)3,4, 2,1 答案:C 评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l 先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。 (3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。 A)希尔排序B)冒泡排序C)插入排序D)选择排序 答案:A 评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。 (4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。 A)2 B)3 C)4 D)5 答案:C 评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与ll比较的关键码分别为15,8,10,12四个。 (5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。 A)n-1 B)n C)n+l D)2n 答案:C 评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。 (6)在软件开发过程中,软件结构设计是描述_______。 A)数据存储结构 B)软件体系结构C)软件结构测试D)软件控制过程 答案:B ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0; C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H- C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes? 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的线性表进行顺序查找,在最坏情况下需要比较 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (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 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 一、选择题 1、若有说明语句:int x=10,y=20,z=30; 则执行语句:if(x>y) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z); 后,输出是20,30,30 2、若有以下语句:char x=3,y=6,z; z=y^x<<2; 则z的二进制值是00001010 3、若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是*pi==j 4、程序段:int num=0; while(num<=2) printf(“%d ,”,num++); 的运行结果是0 ,1 ,2 , 5、若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的首地址 6、若已定义: int x; 则表达式((x=4*5,x*5),x+25) 的值是45。 7、若有说明:int a[3][4],s; ,则对数组a的元素引用错误的是____________ 8、下列C语言的标识符中,合法的标识符为____________ 9、若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句:scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是x=55, y=55.5。 10、若有定义:struct person{ int id ; char name[20]; } per,*s=&per; 则以下对结构体成员的引用中错误的是____________ 二、填空题 1、下列程序的输出结果是6 long fib(int g) { switch(g){ case 0: return(0); case 1: case 2: return(2); } return ( fib(g-1) + fib(g-2) ); } c语言笔试题答案 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988) 笔试题 一、填空题(每个空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 最新大学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)。 [i] 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# 语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。C语言试卷及答案
c语言模拟测试
C语言期末考试题(含答案)
C语言考试题库及答案复习整理
c语言试题及答案
c语言模拟试题
c语言笔试题(答案)(精心整理)
(完整版)C语言试题及答案解析
C语言程序设计模拟试题1(附答案)
C语言笔试题带答案6doc
大学c语言考试题库含答案
C语言全部题目及答案
c语言笔试题目及答案
c语言试题及答案 ()
C语言等级考试模拟试题答案
c语言笔试题答案优选稿
大学c语言考试题及答案
C语言期末考试题含答案