c语言期末复习试题

c语言期末复习试题
c语言期末复习试题

试卷编号:11201

所属语言:C语言

试卷方案:C语言期末考试

试卷总分:100分

共有题型:4种

一、单项选择共30题(共计60分)

第1题(分)

设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ).

A:k++

B:k+=1

C:++k

D:k+1

第2题(分)

已知int i=5,执行语句i+=++i后, i的值是( C).

A:10

B:11

C:12

D:A、B、C都不对

第3题(分)

以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.

#include <>

void main( )

/* Beginning */

{ int r; float s;

scanf("%d",&r);

s=p*r*r; printf("s=%f\n",s);

出错的原因是(D ).

A:注释语句书写位置错误

B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法

D:计算圆面积的赋值语句中使用了非法变量

第4题(分)

"\\\″ABC\″\\″的长度是( B ).

A:11

B:7

C:5

D:3

第5题(分)

已知int j,i=1;,执行语句j=–i++;后,j的值是( C ).

A:1

B:2

C:-1

D:-2

第6题(分)

有以下程序:

#include <>

void main( )

{ int s=0, a=1, n;

scanf("%d", &n);

do{

s+=1; a=a–2;

}while(a!=n);

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

}

若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1

B:-3

C:-5

D:0

第7题(分)

执行以下程序后,输出的结果是( D ).

#include <>

void main( )

{ int y=10;

do{

y––;

}while(––y);

printf("%d\n",y––);

}

A:-1

B:1

C:8

D:0

第8题(分)

以下循环体的执行次数是( C ).

#include <>

void main( )

{ int i,j;

for(i=0,j=1; i<=j+1; i+=2, j––)printf("%d\n",i); }

A:3

B:2

C:1

D:0

第9题(分)

有以下程序段:

int k=0;

while(k=1)k++;

while循环执行的次数是(A ).

A:无限次

B:有语法错误,不能执行

C:1次也不执行

D:执行1次

第10题(分)

#include <>

void main( )

{ int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

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

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( A ).

A:m=123n=456p=789

B:m=123 n=456 p=789

C:m=123,n=456,p=789

D:123 456 789

第11题(分)

设变量已正确定义,以下能正确计算f=n!的程序段是(D)

A:f=0;

for(i=1;i<=n;i++) f*=i;

B:f=1;

for(i=1;i

C:f=1;

for(i=n;i>1;i++) f*=i;

D:f=1;

for(i=n;i>=2;i––) f*=i;

第12题(分)

在下列程序中,没有构成死循环的程序段是( B ).

A: int i=100;

while(1)

{i=i%100+1;

if(i>100) break;}

B:int k=1000;

do

{++k;} while(k>=10000);

D:int s=36; while(s); --s;

第13题(分)

有如下程序:

#include <>

void main( )

{ int n=9;

while(n>6)

{ n--;printf("%d",n);}

}

该程序段的输出结果是( B ). A:987

B:876

C:8765

D:9876

第14题(分)

以下程序的输出结果是( D ). #include <>

void main( )

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

for(i=0;x>8;y=++i)

printf("%d %d ",x––,y); }

A:10 1 9 2

B:9 8 7 6

C:10 9 9 0

D:10 10 9 1

第15题(分)

#include<>

void main( )

{ int n[5]={0,0,0},i,k=2;

for(i=0;i

{ printf("%d\n",n[k]);}

}

该程序的输出结果是( D ).

A:不确定的值

B:2

C:1

D:0

第16题(分)

下列程序执行后的输出结果是( A ).

#include<>

void main( )

{ char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s \n",arr);

}

A:you&me

B:you

C:me

D:err

第17题(分)

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

#include<>

void main( )

{ 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:1,5,9,

B:1,4,7,

C:3,5,7,

D:3,6,9,

第18题(分)

以下数组定义中不正确的是( D ).

A:int a[2][3];

B:int b[ ][3]={0,1,2,3};

C:int c[100][100]={0};

D:int d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};

第19题(分)

以下能正确定义数组并正确赋初值的语句是(D ). A:int N=5,b[N][N];

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

C:int c[2][ ]={{1,2},{3,4}};

D:int d[3][2]={{1,2},{3,4}};

第20题(分)

有以下程序:

int a=4;

int f(int n)

{

int t=0; static int a=5;

if(n%2) { int a=6; t+=a++; }

else { int a=7; t+=a++; }

return t+a++;

}

main( )

{

int s=a,i=0;

for( ; i<2; i++) s+=f(i);

printf("d\n",s);

}

程序运行后的输出结果是(B)

A:24

B:28

C:32

D:36

第21题(分)

以下正确的函数定义形式为(A)

A:double fun(int x, int y)

B:double fun(int x; y)

C:double fun(int x; int y)

D:double fun(int x, y)

第22题(分)

C语言规定,函数返回值的类型是由(D)

A:return语句中的表达式类型所决定的

B:调用该函数时的主调函数类型所决定的

C:调用该函数时系统临时决定的

D:在定义该函数时所指定的函数类型所决定的

第23题(分)

有以下程序: 输出结果是() (注:5353)void swap1(int c0[ ], int c1[ ])

{ int t ;

t=c0[0]; c0[0]=c1[0]; c1[0]=t;

}

void swap2(int *c0, int *c1)

{ int t;

t=*c0; *c0=*c1; *c1=t;

}

main( )

{ int a[2]={3,5}, b[2]={3,5};

swap1(a, a+1); swap2(&b[0], &b[1]);

printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); }

A:3 5 5 3

B:5 3 3 5

C:3 5 3 5

D:5 3 5 3

第24题(分)

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

amovep(int*p, int (*a)[3],int n)

{ int i, j;

for( i=0;i

for(j=0;j

{ *p=a[i][j];

p++; }

}

main( )

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

p=(int *)malloc(100);

amovep(p,a,3);

printf("%d %d \n",p[2],p[5]);

free(p);

}

A) 5 6

B) 2 5

C) 3 4

D) 程序错误

第25题(分)

有以下函数:

fun(char *a,char *b)

{ while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++; b++; }

return (*a–*b); }

该函数的功能是(D ).

A:计算a和b所指字符串的长度之差

B:将b所指字符串复制到a所指字符串中

C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小

第26题(分)

有以下程序:

fun(char p[ ][10])

{ int n=0,i;

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

if(p[i][0]== 'T' ) n++;

return n;

}

main( )

{ char str[ ][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));

}

程序执行后的输出结果是( B ).

A:1

B:2

C:3

D:0

第27题(分)

有以下程序:

main( )

{ char str[][10]={"China","Beijing"},*p=str;

printf("%s\n",p+10);

}

程序运行后的输出结果是( B ).

A:China

B:Beijing

C:ng

D:ing

第28题(分)

有以下程序:

#define f(x) (x*x)

main( )

{ int i1, i2;

i1=f(8)/f(4) i2=f(4+4)/f(2+2)

printf("%d,%d\n",i1,i2);

}

程序运行后的输出结果是( C ).

A:64, 28

B:4, 4

C:4, 3

D:64, 64

第29题(分)

有以下程序: 结果是(A)

void change(int k[ ]) { k[0]=k[5]; }

main( )

{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while(n<=4) { change(&x[n]); n++; }

for(n=0;n<5;n++) printf("%d",x[n]);

printf("\n");

}

A) 678910

B) 13579

C) 12345

D) 62345

A:678910

B:13579

C:12345

D:62345

第30题(分)

在以下程序中,能够通过调用函数fun( ),使main( )函数中的指针变量p指向一个合法的整型单元的是(C ).

A:main( )

int *p;

fun(p);… }

int fun(int *p)

{ int s;

p=&s; }

B:main( )

{ int *p;

fun(&p);…}

int fun(int **p)

{ int s;

*p=&s; }

C:#include <>

main( )

{ int *p;

fun(&p);… }

int fun(int **p)

{ *p=(int*)malloc(2); } …

D:#include <>

main( )

{ int *p;

fun(p);… }

int fun(int *p)

{ p=(int*)malloc(sizeof(int)); }

二、程序填空共1题(共计10分)

第1题(分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:计算平均成绩并统计90分以上人数。

-------------------------------------------------------*/

main()

{

int n,m;float grade,average;

/***********SPACE***********/

average=n=m=【】; f%d\n",average/n,m);

}

三、程序改错共1题(共计10分)

第1题(分)

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉

合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如:当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应该为“a4b3c2d1

efg”;而当a所指字符串中的内容为“1234”,b所指字符

串中的内容为“abcdefg”时,c所指数组中的内容应该为

“1g2f3e4dcba”。

------------------------------------------------------*/

#include <>

#include <>

#include <>

void fun( char *a, char *b, char *c )

{

int i , j;

char ch;

i = 0;

j = strlen(b)-1;

/**********FOUND**********/

while ( i > j ) //此处 > 改为 <

{

ch = b[i];

b[i] = b[j];

b[j] = ch;

i++; j--;

}

/**********FOUND**********/

while ( *a &&*b ) // 此处&&改为 ||(逻辑或) {

if ( *a )

{

*c = *a;

c++;

/**********FOUND**********/

a+; //此处a++

}

if ( *b )

{

*c = *b;

c++;

b++;

}

}

*c = 0;

}

main()

{

char s1[100],s2[100],t[200];

clrscr();

printf("\nEnter s1 string : ");

scanf("%s",s1);

printf("\nEnter s2 string : ");

scanf("%s",s2);

fun( s1, s2, t );

printf("\nThe result is : %s\n", t );

}

四、程序设计共1题(共计20分)

第1题(分)

/*------------------------------------------------【程序设计】

--------------------------------------------------

功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

------------------------------------------------*/

#include ""

#include""

int fun(int w)

{

/**********Program**********/

int s=0,m=w;

while(m) {s+=(m%10)*(m%10);m/=10;}

if (s%5==0) return 1;

else return 0;

/********** End **********/

}

main()

{

int m;

printf("Enter m: ");

scanf("%d", &m);

printf("\nThe result is %d\n", fun(m));

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int c ;

int t;

int o;

IN=fopen("","r");

if(IN==NULL)

{

printf("Read File Error"); }

OUT=fopen("","w");

if(OUT==NULL)

{

printf("Write File Error"); } for(c=1;c<=5;c++)

{

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

c语言模拟测试

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 #define N 7 main() { static int a[N]={12,9,16,5,7,2,1},k,s; printf(“\n the origanal array:\n”); for (k=0;k

同济大学C语言期末考试卷

同济大学C语言期末考试卷 2005-2006学年第二学期《C程序设计期末试卷》(闭卷) 一、单项选择题(20分) 1. 在定义函数时,能用以下(1) 标识符作函数名。 A.struct B._abc C. 8abc D. abc@https://www.360docs.net/doc/e210510791.html, 2在一个函数被调用执行过程中,当执行到函数体中(2) 语句后立即无条件返回主调函数。 A.goto B.break C.continue D.return 3.以下关于main函数定义的叙述中,错误的是(3) 。 A. main函数是自定义函数,因此函数体中的声明和语句都是可选的 B. main函数定义时可以有形式参数也可以没有形式参数 C. main函数定义必须出现在一个源程序的起始位置 D. 在一个源程序中只能有一个main函数定义 4.以下函数定义中正确的是(4) 。 A. double fun(intx,y){ return x*y;} B. double fun(intx,int x){ return x*x; } C. double fun(register intx,int y){ return x*x;} D. double fun(extern intx,int y){ return x*y;} 5.若函数定义为void fun(intx,inty,int *p) { *p= x>y ? x : y; },且main函数中有声明“int a=1,b=2,c[2]={0};”,则以下语句中正确的是(5) 。 A.printf(“%d”,fun(a,b,c)); B.fun(a,b,c+1); C.fun(a,b,c[2]); D.fun(1,2); 6. 若函数定义为double fun(double x,double y){ return x/y;},则以下fun引用声明(函数原型)中错误的是(6) 。 A. double fun(double x,double y); B. double fun(double a,double b); C. double fun(double ,double ); D. float fun(double x,double y); 7.以下程序段中,有语法错误的是。 A. double f; double f (double x) { return f=x*x; } C. double f (double x) { double f; return f=x*x; } B. double f (double f) { return f*f;} D. double f (double x) { if(x>0){ double f ; return f=x;} else{ double f ; return f= -x;} } 8.以下一维数组声明中,正确的是(8) 。 A. int a[ ]; B.int b[10],a[b]; C. int a[4]={1,2,3,4,5}; D. int a[sizeof('a')]={'a'};

江苏大学大一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语言模拟试题

试卷编号: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语句,下列正确的说法是()。

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了____15_________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; ___i<100____________; i++) if (___i/3_=__=0__i_______) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是_________7 ______ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

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(附答案)

《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)

大一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语言期末考题库

昆明理工大学C语言期末考题库一个数组中的所有元素可以具有不相同的数据类型。选择一项: 对 错 C语言中,do-while语句构成的循环只能用break语句退出。选择一项: 对 错 数组名作为函数的参数时,实参数组和形参数组共用相同的内存单元。 选择一项: 对 错 已知字符数组str1的初值为"China",则语句str2=str1;执行后字符数组str2也存放字 符串"China"。 选择一项: 对 错 论使用何种参数传递方式,形参变量值的改变都不影响实参变量的值。 选择一项:

对 错 以下有关宏替换的叙述不正确的是_______。选择一项: a. 宏替换不占用运行时间 b. 宏替换只是字符替换 c. 宏名无类型 d. 宏名必须用大写字母表示 结构体可以定义在单独的头文件中,使用时需要在对应C文件中包含该头文件。 选择一项: 对 错 可以用swicth结构实现的程序都可以使用if语句来实现。选择一项: 对 错 下面对typedef的叙述中不正确的是_______。 选择一项: a. typedef只是将已存在的类型用一个新的标识符来代表

b. 用typedef可以增加新类型 c. 用typedef可以定义各种类型名,但不能用来定义变量 d. 使用typedef有利于程序的通用和移植 枚举类型时一种基本的数据类型。 选择一项: 对 错 switch语句的结束发生在break;语句的执行或者switch语句的“}”。选择一项: 对 错 f(int a) { int b=0;static int c=3; b++; c++; return(a+b+c); } 选择一项: a. 7 7 7 b. 7 8 9 c. 7 10 13 d. 7 9 11

大学大一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语言等级考试模拟试题答案

一、选择题 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语言期末考试题

大一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语言自学考试模拟试题及答案

C语言自学考试模拟试题及答案 一、单项选择题 1.各种基本数据类型的存贮空间正确的长度排列为_____C_____. A.Char12?15:6>7?8:9)的值为____C________. A 9 B 8 C 15 D. 1 7.若x=5,y=3 则y*=x+5;y的值为___D____________. A. 10 B. 20 C. 15 D. 30 8.C语言的输入与输出操作是由______C______完成的。 A.输入语句 B.输出语句

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

C语言模拟试题II

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案 一、单项选择题(每题2分,30道题,共60分) 1.下面的程序将输出: main() { float f; int x=1,y=2.5; f=x/y; printf("f=%1.1f,y=%#X", f, y ); } A.f=0.0 , y=2 B.f=0.5 , y=0X2 C.f=0.0 , y=0X2 D.f=0.5 , y=2 2.下面的程序将输出: #include "string.h" main() { int len; char str[]="a\b\04235\0"; len=strlen(str); printf("%d",len); } A. 10 B. 5 C. 6 D. 7 3.下面的程序将输出: main() { int a=0x31; char *str[]={"this is one. ","this is two. "}; char ch; ch=++a-’0’; switch(ch) { case 1: printf ("%s", str[0]); case 2: printf ("%s", str[1]); default: printf ("no way! "); } } A.this is one. B.this is two. C.no way! D.this is two.no way! 4.下面的程序将输出: main() { int a[5]={1,2,3}; int k,j; for(k=1;k<4;k++) a[k]++;

for(j=0;j<5;j++) printf("%d ",a[j]); } A.1 3 4 1 0 B.2 3 4 1 0 C.2 3 4 0 0 D.1 3 4 0 0 5. 已知有下面两个变量,将数组a 的第2个单元赋值为1的C 语句是: int a[10]; int *p; p=a; A.a[2]=1; B.p[1]=1; C.*(p++)=1; D.*(++a)=1; 6. 下面程序将输出: void add(int a) { a++; return; } main() { int k; k=3.4; add(k); printf("%d ",k); } A. 3.4 B. 4.4 C. 3 D. 4 7. 下列循环结构中,不是.. 无限循环的是: A. for(i=1, s=0; ; i++) B. i=10; s=s+i ; while(1) {i=i%10+1; if(i>10) break; } C. int i=0; D. i =100; do{ ++i ; }while(i>=0); while(++i%2) i++; 8. 若已知int a[3][4],*p;p=(int *)a;那么对数组a 的第2行第2列的正确引用是: A.a[2][2] B.p[5] C.a[5] D.p[1][1] 9. 已知:int (*p)[20]; 且p 的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040 10. 若有说明int a[2][2];那么,下面正确的C 赋值语句是: A.a=2; B.a[1]=2; C.a[1]={1,2}; D.a[0][1]=a[1][0]; 11. 设x 为int 型变量,则执行以下语句后,x 的值为 x=10; x+=x-=x-x; A .10 B .20 C .40 D .30 12. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y )的值是: A .0 B .语法错 C .1 D ."假" 13. 下面能正确进行字符串... 赋值操作的语句是: A .char s[5]={"ABCDE"}; B .char s[]={'A','B','C','D','E'}; C .char *s ;s="ABCDEF"; D .char *s ;scanf ("%s",s ); 14. 已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.

江苏大学大一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. 一个C程序的组成部分可以是()。 A)一个主函数和一至若干个其他函数B)一至若干个主函数 C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序 2. 一个C程序的执行是从()。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。 A)必须为字母B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是()。 A)–1 B)0 C) 1 D) 2 5. 表达式11&10的结果用二进制表示为()。 A)11B)3C)1D)10 6. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是()。 (A)3(B)0(C)9(D)-12 7. 在下列选项中,不的赋值语句是()。 A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 8. 下列( )表达式不满足:当x的值为偶数时值为"真",为奇数时值"假"。 A)X%2==0B)!x%2!=0 C)(x/2*2-x)==0D)!(x%2) 9. 若有定义:int a=8,b= 5,c;执行语句c=a/b+0.4 后c的值为() A)1.4 B)1 C)2.0 D)2 10. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是()。 A)true B)false C)0D) 1 11. 若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。 A)3B)0C)4D)2 12. 以下哪个表达式的值为4() A)11/3B)11.0/3C)(flaot)11/3D)(int)(11.0/3+0.5) 13. 若变量a,i已经正确定义,且i已经正确赋值,合法的语句是() A) a==1 B) ++i C) a=a++=5 D)a=int(i) 14. 以下程序的输出结果是() int a=1234; printf("%2d",a); A) 12 B) 34 C)1234 D) 提示错误,无结果 15. 设x,y分别为单精度和双精度类型变量,则下列选项()可将表达式x+y的运算结果强制转换为整型数据。 A)(int)x+y B)int(x)+y C)int(x+y)D)(int)(x+y) 16. 当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是() A)1B)0C)3D)2 17. 若x=2,y=1,则表达式x>y?1:1.5的值为() A)1B)1.5C)1.0D)2 18. 在位运算中,操作数每左移一位,其结果相当于() A)操作数乘以2B)操作数除以2C)操作数乘以4D)操作数除以4 19. 在位运算中,某操作数右移3位,其结果相当于() A)操作数乘以6B)操作数除以6C)操作数乘以8D)操作数除以8 20. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是()。 s=6,u=6;u=s++;u++; printf("%d",u); A)7B)6C)5D)4 21. 若有定义:int x,y;char a,b,c;并有以下输入数据:x=12A B C, 则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的程序段是() A)scanf("x%d y=%d",&x,&y); a=getch();b=getch();c=getch(); B)scanf("x=%d%d",&x,&y); a=getch();b=getch();c=getch(); C)scanf("x=%d%d%c%c%c",7x,&y,&a,&b,&c); D)scanf("x=%d%d%c%c%c%c%c",&x,&y,&a,&b,&b,&c,&c); 22. 如下程序:#include void main() {int m,n,k; m=(n=4)+(k=10-7); printf(“m=%d\n”,m); } 运行后m的值为()。 (A)4(B)3(C)7(D)14

相关文档
最新文档