文档库 最新最全的文档下载
当前位置:文档库 › 江西理工大学c语言复习参考题

江西理工大学c语言复习参考题

江西理工大学c语言复习参考题
江西理工大学c语言复习参考题

《C语言程序设计》复习参考资料

一.选择题

1.以下关于运算符优先顺序的描述中正确的是()。

A) 关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符

B) 逻辑运算符< 关系运算符< 算术运算符< 赋值运算符

C) 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符

D) 算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符

2.下列选项中合法的变量名是_________

A) #define B) int C) a594_3 D) abs(x)

3.以下正确的描述是()。

A) break语句的作用是结束整个循环的执行

B)在C程序中,注释说明只能位于一条语句的后面

C) 在循环体内使用break语句或continue语句的作用相同

D) 从多层循环嵌套中退出时, 只能使用goto语句

4.以下说法正确的是()

A).#define 和printf 都是C 语句。

B).#define 是C语句,而printf不是。

C).若程序中要调用数学函数,必须在文件开头输入语句 #include “math.h”

D). #define 和printf 都不是C 语句。

5.下面的函数定义正确的是______________

A)float fun (float x ; float y) {return x*y;}

B)float fun (float x,y) {return x*y;}

C)float fun (x,y) {int x,y;return x*y;}

D)int fun (int x, int y) {return x*y;}

6.执行下面语句后的输出为( )

int i=-1;

if (i<=0) printf(“****\n”)

else printf(“%%%%\n”)

A). **** B). %%%%

C). %%%%c D). 有语法错误,不能正确执行

7.以下程序的输出结果是( )

void main( )

{int k=17;

printf("%d, %o, %x \n ", k, k, k );

}

A). 17, 21, 11 B). 17, 17, 17

C). 17, 0x11, 021 D). 17, 21, 1

8.以下不正确的叙述是()

A)#define是宏定义命令

B)宏定义只是做简单的置换,不做正确性检查

C)宏定义是C语句,必须在行末加分号

D)printf是C语句,但#define不是。

9.一个C语言程序是由()

A) 一个主程序和若干子程序组成 B)若干子程序组成

C) 若干过程组成 D) 函数组成

10.在C语言中,正确的结论是( )

A).对文件操作必须先关闭文件

B).对文件操作必须先打开文件

C).对文件操作顺序没有统一规定

D).以上都错

11.以下对二维数组a的正确说明是()。

A) int a[3][]; B) floatf a(3,4);

C) char a[1][3]; D) float a(3)(5);

12.若有说明:int a[3][2]={10};则下面正确的叙述是()

A)只有元素a[0][0]可得到初值10

B)此说明语句不正确:。

C)数组a中各元素都可得到初值,但其值不一定为0。

D)数组a中每个元素均可得到初值10

13.以下叙述不正确的是()。

A) 一个C源程序可由一个或多个函数组成

B) 一个C源程序必须包含一个main函数

C) C程序的基本组成单位是语句

D) 只能在循环体内和switch语句体内使用break语句

14.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与()配对。

A) 缩排位置相同的if B) 其之前最近的未配对的if

C) 之后最近的if D) 同一行上的if

15.能正确表示a和b同时为正或同时为负的逻辑表达式是( )

A)(a>=0||b>=0)&&(a<0||b<0)

B)(a>=0&&b>=0)||(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)

D) (a-b>0)&&(a-b<=0)

16.已知x =5,ch='A',y=0则表达式(x > = y && ch<'a'&&!y) 的值是()

A) 0 B) 语法错C) 1 D) "假"

17.下列关于单目运算符++、--的叙述中正确的是()

A) 它们的运算对象可以是任何变量和常量

B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D) 它们的运算对象可以是char型变量、int型变量和float型变量

18.下面的程序( )

void main()

{ int x=3;

do {

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

} while(!(--x));

}

A). 输出的是1 B). 输出的是1和-2

C). 输出的是3和0 D). 是死循环

19.如下程序:

void main( )

{ int a=6; printf(“%d\n”,(a+=3,2*a)); }

执行后,输出结果是( )

A) 9 B) 6 C) 2 D) 18

20.若有以下说明和语句,请选出哪个是对C数组元素的正确引用( ) int c[4][5], (*cp)[5]; cp=c;

A). cp+1 B). *(cp+3) C). *(cp+1)+3 D). *(*cp+2) 21.下面程序的输出是( )

main()

{ int x=023;

printf("%d\n", --x); }

A). 17 B). 18 C). 23 D). 24

22.执行下列程序的结果是( )

main()

{ float x=1,y; y=++x*++x; printf(“%f\n”,y); }

A). 9.000000 B). 6.000000

C). 1.000000 D). 程序有错误

23.下面程序的输出是( )

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;

printf("%d\n", *(p+2) ); }

A). 3 B). 4 C). 1 D). 2

24.执行下面程序中的输出语句后,a的值是( )

main()

{ int a;

printf("%d\n", (a=3*5,a*4,a+5) ); }

A). 65 B). 20 C). 15 D). 10

25.下面程序的输出是( )

main()

{ int a=-1, b=4, k;

k=(a++<=0)&&(!(b--<=0));

printf("%d %d %d \n", k, a, b ); }

A). 0 0 3 B). 0 1 2 C). 1 0 3 D). 1 1 2 26.设有如下的程序段:

char str[]="Hello"; char *ptr; ptr=str;

执行完上面的程序段后,*(ptr+5)的值为( )

A). '0' B). '\0' C). 不确定的值 D). '0'的地址

27.在宏定义# define PI 3.14159中,用宏名PI代替一个( )

A).单精度数 B).双精度数 C).常量 D).字符串

28.若i是整型变量,pb是基本型为整型的指针变量,则正确的赋值表达式是()

A). pb=&i B). pb=i C). *pb=&i D). *pb=*i

29.有以下程序段

int m=0,n=0; c har c=’d’;

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:6D6<回车>,则输出结果是()

A) 0,d,6 B) 6,d,6 C) 6,D,6 D) 6,D,0

30.printf()函数中用到格式符%-7s ,其中数字7表示输出的字符串占用7列。如果字符串长度小于7,则输出按方式()

A) 从左起输出该字串,右补空格

B) 按原字符长从左向右全部输出

C) 右对齐输出该字串,左补空格

D) 输出错误信息

31.以下能正确地定义整型变量a,b和c 并为其赋初值3的语句是()

A) int a=3,b=3, c= 3; B) int a,b, c= 3;

C) a= 3,b=3,c=3; D) a= b= c=3;

32.以下程序的输出结果是( )

void main( )

{int x=6,y=6,i;

for(i=2;x>4;y=++i)

printf("%d,%d ",x--,y);

}

A) 5,5 5,3 B) 6,6 2,3 C) 6,5 5,2 D) 6,6 5,3

33.以下程序的输出结果是( )

void main( )

{int w=4;

int fun(int k);

fun(w);

printf("\n");

}

fun(int k)

{if(k>0) fun(k-1);

printf("%d ",k); }

A) 4 3 2 1 B) 0 1 2 3 4

C) 1 2 3 4 D) 4 3 2 1 0

34.下面程序的输出是( )

main()

{ int x=023;

printf("%d\n", --x); }

A). 17 B). 18 C). 23 D). 24

35.以下程序的输出结果是( )

main()

{ char ch[3][4]={ "123","456","78"},*p[3]; int i;

for(i=0;i<3;i++) p[i]=ch[i];

for(i=0;i<3;i++) printf("%s",p[i]);

}

A). 123456780 B). 123 456 780

C). 12345678 D). 147

36.下面程序的输出结果为( )

char *alpha[6]={"ABCD","EFGH","IJKL",

"MNOP","QRST","UVWX"};

char **p;

void main( )

{int i; p=alpha;

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

printf("%c",(*p)[i]);

printf("\n");

}

A). EIMC B). ABCD C). EFGH D). AEIM

37.根据下面的定义,能打印出字母M的语句是( )

struct person {char name[9]; int age;};

struct person class[10]={ "John",17, "Paul",19,

"Mary",18, "Adam",16 }

A). printf("%c\n",class[3].name);

B). printf("%c\n",class[3].name[1]);

C). printf("%c\n",class[2].name[1]);

D). printf("%c\n",class[2].name[0]);

38.有以下程序

void main( )

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2) {k=k+p[i]; i++;}

printf("%d\n",k);

}

执行后输出结果是()

A) 58 B) 56 C) 45 D) 24

39.以下程序的输出结果是( )

void main( )

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p;

p=&x[1][1];

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

printf("%d ",p[i]);

}

A) 5 2 B) 5 1 C) 5 3 D) 9 7

40.以下程序的输出结果是( )

# include

void main( )

{ char *a=”abcdefghi”;

void fun( char *s );

fun(a);

puts(a);

}

void fun(char *s )

{ int x,y;

char c;

for(x=0,y=strlen(s)-1;x

{ c=s[y];s[y]=s[x];s[x]=c; }

}

A). ihgfedcba B). abcdefghi

C). abcdedcba D).ihgfefghi

41.v oid main( )

{int i,a[]={5,6,9,11};

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

{ if (a[i]%2==0) continue;

printf("%d ",a[i]);

}

}

执行后输出结果是( )

A) 编译出错 B 6 C) 5 9 11 D) 5 6 9 11 42.以下对数组的定义正确的是( )

A)int x(10); B)int x[5]={0,1,2,3,4,5};

C)int n=10; x[n]; D)int x[ ]= {0,1,2,3,4};

43.以下叙述中不正确的是( )

A)switch是多分支结构语句

B) continue语句的作用是使程序的执行流程跳出包含它的所有循环

C) break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用不相同

44.如下程序:

void main( )

{ int i=1,j=2,k=3;

if((j++|| k++)&&i++)

printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是( )

A) 1,2,3 B) 2,2,4 C) 2,3,4 D) 2,3,3

45.以下叙述中,不正确的是( )

A)算法应该具有有穷性、确定性以及有效性等特点

B) 算法可以用传统流程图、N-S流程图以及伪代码等形式来描述

C) 基本结构只有顺序、选择、循环3种结构

D)结构化程序设计的思想是自顶向下、逐步细化、模块化设计以及结构化编码46.在C语言中,函数返回值的类型最终取决于( )

A) 函数定义时形参的类型 B)return语句中表达式值的类型

C) 调用函数时主函数所传递的实参类型 D)函数定义时在函数首部所说明的函数类型47.以下程序的输出结果是( )

void main()

{int i;

for(i='a';i<'i';i++,i++)

printf("%c",i-32);

printf("\n");

}

A) 编译不通过,无输出 B) aceg C) ACEG D) ABCDEFGI 48.若有以下的说明:

struct person

{char name[20];

int age;

char sex;

}a={"li ning",20,'m'},*p=&a;

则对字符串li ning的引用方式不可以是( )

A). (*p).name B). https://www.wendangku.net/doc/fc4527094.html, C). https://www.wendangku.net/doc/fc4527094.html, D). p->name

49.下面的程序输出是( )

int m=13;

int fun2(int x,int y)

{int m=3;

return(x*y-m);

}

main()

{int a=7,b=5;printf("%d\n",fun2(a,b)/m);}

A). 1 B). 2 C). 7 D). 10

50.下面的程序输出是( )

main()

{ int x=100,a=10,b=20,ok1=5,ok2=0;

if(a

if(b!=15)

if(!ok1)

x=1;

else

if(ok2) x=10;

x=-1;

printf("%d \n", x ); }

A). -1 B). 0 C). 1 D). 不确定的值

51.若有以下定义:

int a[ ]={1,2,3,4,5,6,7,8,9,10}, *p=a;

则值为3的表达式是()

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

C). p+=3,*p++ D). p+=2, ++*p

52.下面程序的输出是( )

int aa[3][3]={ {2},{4},{6} };

void main()

{int i, *p=&aa[0][0];

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

{ if(i==0)

aa[i][i+1]= *p+1;

else

++p;

printf("%d", *p ); }

}

A). 23 B). 26 C). 33 D). 36

53.下面程序的输出是( )

void prtv(int *x)

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

void main()

{ int a=25; prtv(&a); }

A). 23 B). 24 C). 25 D). 26

54.以下程序的运行结果是( )

void main( )

{char a[10]={'1','2','3','4','5','6','7','8','9','\0'};

char *p;

int i=8;

p=a+i;

printf("%s\n",p-2);

}

A) 6 B) 789 C) '6' D) 678

55.执行以下3条语句之后,则k的值是_______

int x=4,y=7 ; x++ ;y+=2 ;k=y%x;

A)1 B) 2 C)4 D)3

56.以下程序段

for ( k = 0, m = 4; m ; m - = 2 )

for( n = 1; n< 4 ; n++) k++;

循环体语句” k ++;”执行的次数是______________

A)16 B)12 C)6 D)8

57.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为()

A) char=int<1ong int<=float

B) char< int <1ong int=float=double

C) char

D) char=int =1ong int<=float

58.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='d'十'1'一'3';后,c2中的值为()

A)b B) 68 C) 不确定的值D) f

59.表达式18/4*sqrt(4.0)/8值的数据类型为: ()

A) int B)float C)double D)不确定

60.能正确表示"当x 的取值在[1,10]和[50,60]范围内为真,否则为假"的表达式是()。

A) (x>=1) && (x<=10) &&(x> =50) && (x<=60)

B) (x>=1) || (x<=10) || (x>=50) || (x<=50)

C) (x>=1) && (x<=10) || (x>= 50) && (x<=60)

D) (x > =1)|| (x< =10) && (x> =50) || (x<=60)

61.以下程序的输出结果是( )

# include

main()

{ char *p1,*p2,str[50]="ABCDEFG";

p1="abcd"; p2="efgh";

strcpy(str+1,p2+1); strcpy(str+3,p1+3);

printf("%s",str);

}

A). AfghdEFG B). Abfhd C). Afghd D). Afgd

62.以下程序的输出结果是( )

main()

{int i;

for(i=1;i<6;i++)

{ if(i%2) {printf("#");continue;}

printf("*");

}

printf("\n");

}

A). #*#*# B). ##### C). ***** D). *#*#*

二.填空题

1.C语言源程序的扩展名为.c,可执行文件的扩展名为_______________。.exe

2.数组 int a[3][5];共定义了______个数组元素。15

3.C程序由函数构成,C程序总是从_______开始执行.main()

4. C语言中,用__________ 关键字来包含如stdio.h之类的头文件。 include

5.函数的返回值是通过函数中的________________语句来获得的。return

6.至少执行一次循环体的循环语句是。do—while 语句

7.对于不带返回值的函数,应当用关键字______________定义函数。void

8.多分支结构的程序,通常选用_________语句来实现。 switch

9.若char ch[]="25yi6"有以下语句,则编译后分配给数组ch的内存占用的字节数为________。6

10.下面运算符 < , ++ = 按照优先级从高到低排列顺序为__ _。++ < = , 11.若char str[8]={“tony”};int k=strlen(str);则k的值为____________。4 12.______________是声明结构体类型的关键字。struct

13.int a[3][4]={{7,5},{5,8},{0,6,9,3}};则编译后a[1][2]= __________。0 14.静态局部变量应该用关键字____________来进行声明。static

15.用数组名作为函数调用的实参,则传递给形参的是____ _。数组的首地址16.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是________。3 17.C语言提供三种逻辑运算符,按优先级高低它们分别是。! > && > || 18.getchar( ) 函数的功能是。从标准输入设备读取下一个字符19.写出下面表达式的值

6*4/7+8%3 _______ 5 x=5 ; y=2; (x++)+y _________ 7

8-4>=5+3 ________ 0 6>4-2 ? 4%2: 3 ____ _ __ 0

x=2,y=2; x||!y ______ 1 x=3 ; x+=x-=2 ______ _ 2 20.下面invert函数的功能是将一个字符串str的内容颠倒过来,请填空。

# include

void invert(char str[ ] )

{ int i, j;

char ; k

for(i=0,j=strlen(str) ; i

{ k=str[ i ]; str[ i ]=str[ j ]; } str[j]=k;

}

三.程序阅读题

1.以下程序的运行结果是_________________

#include

void main()

{int m=3;

if(--m<3) printf(" %d\n",--m);

else printf("%d\n",++m);

}

2.执行下面程序段后, 输出结果是________________

#include

int i=2;

int fun(int x)

{ int k,j=1;

i=x*2; k=i+j;

return k;

}

void main( )

{ int m,j=3; m=fun(j);

printf(“i=%d j=%d m=%d\n”,i,j,m);

}

3.下面程序的输出是_____________

void main( )

{int arr[10],i,k=0;

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

arr[i]=i;

for(i=1;i<4;i++)

k+=arr[i]+i;

printf("%d\n",k);

}

4.下面程序的输出结果是________________

#include

#include

#define MAX_COUNT 6

void fun() ;

void main( )

{int count;

for(count=1;count<=MAX_COUNT;count++)

fun();

}

void fun()

{static int i;

i+=2;

printf("%d",i--);

}

5.下面程序的输出是________

void main()

{int a[ ]={2,4,6}, *ptr=&a[0];

int x=8, y, z;

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

z=(*(ptr+y)

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

}

6.下面程序的输出是________

main()

{int arr[10],i,k=0;

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

arr[i]=i;

for(i=1;i<4;i++)

k+=arr[i]+i;

printf("%d\n",k);

}

7.下面程序的输出结果是_________________ int t(int x,int y,int cp,int dp) { cp=x*x+y*y;

dp=x*x-y*y; }

void main( )

{int a=4,b=3,c=2,d=4;

t(a,b,c,d);

printf("%d %d\n",c,d);

}

8.下面程序的正确运行结果是________

void main()

{ static char str[ ]=”abcdef”;

void abc(char str[ ] );

abc(str);

printf(“str[ ]=%s\n”, str);

}

void abc(char str[ ] )

{ int a,b;

for(a=b=0;str[a]!=’\0’;a++)

if(str[a]!=’c’)

str[b++]=str[a];

str[b]=’\0’;

}

9.下面程序的输出结果是_____________

int fun(int *x,int n)

{if(n==0)

return x[0];

else return x[0]+fun(x+1,n-1);

}

void main( )

{int a[]={1,2,3,4,5,6};int k=fun(a,3);

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

}

10.执行下面程序段后, 输出结果是_________________ void main( )

{int i,x;

for(i=1,x=1;i<=20;i++)

{if (x>=10)

break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

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

}

11.下面程序的执行结果是__________________________

#include

void main()

{ int a[6]={2,5,7,3,9,8};

int i,j,t;

printf("\n");

for (j=0;j<5;j++)

for (i=0;i<5-j;i++)

if (a[i]>a[i+1])

{ t=a[i]; a[i]=a[i+1]; a[i+1]=t;

}

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

printf("%d ",a[i]);

}

12.下列程序执行后,输出的结果是_ ___

# include

fun(int a)

{ int b=0; static int c=3; a=c++,b++; return(a); }

void main()

{int a=2, i, k;

for(i=0;i<2;i++) k=fun(a++);

printf “%d\n”, k);

}

13.下面程序若从键盘输入:Ref6ugcBDT8e,按回车键,最后的执行结果是_______ #include

void main ( )

{ int m=0,n=0;

char c;

while ( (c=getchar( ) )!='\n' )

{ if (c>='A' && c<='Z' ) m++ ;

if (c>='0' && c<='9') n++;

}

printf("n=%d m=%d\n", n,m );

}

14.下面程序的执行结果是______________________

#include

struct student { int num;

char name[10];

int score;

};

struct student stu[3]={{10101,"Li Lin",86},{10102,"Zhang Fun",65},{10104,"Wang

Min",71}};

void main( )

{ struct student *p;

int k=0;

for (p=stu;p

k+= p->score;

k/=3;

printf("%d\n",k);

}

四.编程题

(1). 教材中的例题以及习题册中的课后习题;

(2). 上课时所涉及到的实例程序。

c语言复习题答案

c语言复习题-2010 1~5 ABCDB 6~10 BADAD 11~15 DABAB 16~20 ADDDC 1. 编程计算1!+2!+3!+……+n!的值,其中n的值由用户输入。 #include main() { long term = 1,sum = 0; int i,n; scanf(“%d”,&n); for (i = 1; i <= n; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...n! = %ld \n", sum); } 2. 从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。要求按如下函数原型进行编程,分别计算最高分和统计不及格学生的人数:int FindMax(int score[], int n); int CountFail(int score[], int n); #include int FindMax(int score[], int n); int CountFail(int score[], int n); main() { int i, score[20],max,count; for (i=0; i<20; i++) { scanf("%d",&score[i]); } max = FindMax(score, 20); printf("max = %d\n",max); count = CountFail(score, 20); printf("count = %d\n",count); } int FindMax(int score[], int n) { int max,i;

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

c语言试题及答案

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) 由用户指定传递方式

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

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

(完整版)C语言试题及答案解析

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语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

C语言1-5章复习题及参考答案

一.选择题 1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。 A .-3 B.9 C.-12 D.6 2、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。 A .1.4 B.1 C.2.0 D.2 3、有如下程序: void main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是()。 A .6 B.3 C.死循环 D.0 4、下列关于表达式的描述中,错误的是()。 A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。 C. 每一个表达式都有自己的值。 D. 表达式必须以分号结尾。 5、C语言中,合法的长整型常数是()。 A . '\t' B.” A” C.65 D.a 6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。 A .1 B.2 C.2.00000 D.2.50000 7、表达式:10!=9的值是()。 A . true B. 非零值 C.0 D.1 8、以下程序的输出结果是()。 #include void main() { printf("%d\n", NULL); } A . 不确定的 B.0 C.-1 D.1 9、请选出合法的C语言赋值语句。() A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b); 10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。 A .0 B.2 C.4 D.8 11、关于语句printf(“hello world\n”);,下列描述中错误的是()。 A . printf()是格式化输出函数,用于输出信息。 B. printf()括号中的内容为函数的参数。 C. printf()括号中的内容会全部输出到控制台上。 D. \n表示换行操作。 12、下列选项中,哪一项不是C语言中的位运算符()。 A .& B.|| C.~ D.^ 13、以下程序的输出结果是()。 void main()

c语言试题及答案

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E )

A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果: n=6;

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

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为关键

大学C语言期末考试习题集(带详解答案)

一、单项选择题 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语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

C语言考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案 C语言程序设计 一、单项选择题 若以下各题所有库函数都可以合法使用,且变量定义如下: int m=5, i=3,j=2,*p, a=8,b=0; int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6}; float x=2.5,y=3.0; double z=0; long n=1; char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’}; struct student { int num; char name[20]; float score; struct student *next; }st1,st2,*ps;

FILE *fp; 1.若将3和10从键盘输入给变量a、x,输入语句为 scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车): A a=3,x=10↙ B 3,10↙ C 3 10↙ D 3,10.0↙ 2. 以下不是死循环的语句是: A for ( ;;y+=i++); B while(a) y+=i++ ; C do{ y+=i++}while (a>0); D for (b=0;(c=getchar()!=’\n’);)b++; 3.若p=arr;正确的语句是: A *p=arr[10]; B *p=arr[2*a]; C p=arr[5]; D p[i]=arr[0]; 4.若ps=&st1;则下面描述正确的是: A ps->num与st1->num等价。 B ps.num与st1.num等价。 C ps->num与num等价。 D ps->num与st1.num等价。 5.语句printf(“%d",aj);的输出结果是:

C语言试题库(带答案解析)~排版

一、选择题 1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If (B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f (C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r (C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A) 源代码 (B)汇编语言代码 (D) ASCII 码 6、在Visual C++ 环境下,C 源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (D) .doc 7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( ) (B) obj (C) c 或cpp (D) txt 8、C 程序由( )组成。 (A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。 (A) 2个 (C) 任意个 (D) 10个 11、一个 C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数 13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是( )。 (A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) D) 17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3 B .0 C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。 B ./ C .< D .! 22、C 语言中最简单的数据类型包括 。 A .整型、实型、逻辑型 C .整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A 24、若已定义x 和y 为double 型变量,则表达式x=1 ,y=x+3/2的值是 。 A .1 B .2 D . 25、设正x 、y 均为整型变量,且x=10,y=3,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A .10,3 B .9,3 C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为 。 A . C . D .2 27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j; 28、设x 和y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() { char c='z'; printf("%c",c-25); } B .Z C .z-25 D .y 30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。 #include <> main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); B .B,C C .C,D D .不确定的值 31、若k 是int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); printf("&&&&"); B .&&&& C .####&&&& D .有语法错误,无输出结果 32、关于以下程序,说法正确的是 。 #include <> main()

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

C语言面试题及答案

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……whi le和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 以下是引用片段: #include main() { 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,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: 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____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

相关文档