当前位置:文档之家› C语言测试题2

C语言测试题2

C语言测试题2
C语言测试题2

一、选择题

1.语句int a=10,*point=&a;其值不为地址。

A. point

B. &a

C. &point

D. *point

2.若p为指针变量,y为变量,则y = *p++;的含义是

A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为

A. ”visual C++”

B.str的首地址

C. \n

D.”v”

4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为

A.T,Father,F

B.Teaher,F,Father

C. Teacher,Father,Father

D.语法错,无输出

5.下列说明或赋值语句,不正确的是

A. char *p;p=”Visual C++”;

B. char p1[12]={…v?,?i?,?s?,?u?};

C. char p2[12];p2=”Visual C++”

D. char p3[]=”Visual”;

6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是

A.p+=3*4+3

B.p+=2*4+3

C. p+=(3*4+3)*sizeof(int)

D.p+=(2*4+3)*sizeof(int)

7.语句int i,*p1,**p2;以下语句语法不正确的是

A.p1=&i;

B. p2=&i;

C.p2=&p1;

D.i=?\0x23?;

8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能

..把结点b连接到结点a之后的语句是

C. p->next=&b;

D.(*p).next=q;

9.下面正确的语句是

A. int a[3][4],(*p)[4]; p=a;

B. int a[3][4],*p[4]; p=a;

C. int a[3][4],*p; p=a;

D. int a[3][4],**p;*p=a;

10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是

A.fp=fopen("a:\\aa.dat","ab");

B. fp=fopen("a:\\aa.dat","a");

C. fp=fopen("a:\\aa.dat","r+");

D. fp=fopen("a:\\aa.dat","w");

11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时,

A.函数返回值100

B. 函数返回值150

C. 函数返回二个值100和150

D. 语句return 100,150;语法错.

12.数组作为函数的形参时,把数组名作为实参,传递给函数的是

A.该数组的首地址

B. 该数组的元素个数

C. 该数组中的各元素值

D. 该数组的大小

13.执行以下语句序列:则

enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //A

c1=Mon; //B

printf(“%d”,c1);

A.输出1

B.输出2

C.输出0

D. B行语法错

14.执行以下语句序列:则

char *p1=”Speaking”; //A

char *p2=”English”; //B

char *p3=”a piece of cake”; //C

char *str[]={p1,p2,p3}; //D

printf(“%c”,*(str[0]+1));

A.输出English

B.输出Speaking

C.输出p

D. D行语法错

二、填空题

1.(2*2分=4分)下面程序的运行结果为、

void main( )

{

static int a[3][2]={{12},{14,16},{1,2}};

int *p=a[1];

printf(“%d\n”,*(p+1));

printf(“%d\n”,*(p+3));

}

2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为,*(*(p+1)+1)的值为

static int b[3][2]={1,3,5,7,9,11};

int (*p)[2];

p=b;

3.(1*4分=4分)下面程序的运行结果为

#include

void sub(int *x,int i,int n)

{

if(n<=i)sub(x,i,3*n);

*x+=n++;

}

void main( )

{

int x=0;

sub(&x,12,2);

printf(“%d”,x);

}

4.(2*2分=4分)以下程序运行结果为_______ _____、

void main()

{

char *p,*q;

char str[]="Hello,World\n";

q = p = str;

p++;

printf(“%s\n”,q);

printf(“%s\n”,p);

}

5. (1*4分=4分)以下程序运行结果是_______ ___________ void main()

{

short ar[5]={1,2,3,4,5 };

short * par=&ar[1];

int i;

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

{

printf(“%d %d %d”,ar[i],par[i],*(ar+i));

}

}

6.(2*2分=4分) 以下程序运行结果是_______

void swap2(int *x,int *y)

{int t;

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

}

void main( )

{ int a=100,b=200;

swap2(&a,&b);

printf(“%d\t%d”,a,b);

}

7.(3*2分=6分)

void fun(int n, int *s)

{ int f1,f2;

if(n= =1||n= =2)*s=1;

else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;

printf(“%d\t%d”,f1,f2);}

}

void main( )

{ int x;

fun(4,&x);

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

}

程序输出的第一行是第二行是最后一行是8. (3*2分=6分)

void f(int *q1,int *q2,int *q3)

{*q3=*q1+*q2;}

void main( )

{ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;

for(i=2;i<9;i++)f(p1++,p2++,p3++);

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

{ for(j=0;j<3;j++)printf(“%d”,a[i][i]);

printf(?\n?);

}

}

程序输出的第一行是第二行是最后一行是9.(2*3分=6分)

int f(int x,int y)

{return x*y;}

void main( )

{ int i,j,(*fun)(int,int);

fun=f;

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

{ switch(i)

{case 1:

case 2: j=(*fun)(i,i+1);break;

case 3: j=(*fun)(i-1,i+2);break;

}

printf(”j=%d”,j);

}

}

程序输出的第一行是第二行是最后一行是

三、完善程序

1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.

struct NODE{int data;NODE *next;};

int min(NODE *first)

{

NODE *p;

int m;

p=first;

m=p->data;

for(p=p->next;p!=NULL;p=

)

if(m> )m=p->data;

return m;

}

2.(3*2分=6分)以下程序求二维数组的平均值

float average(float (*p)[4],int n)

{

float sum=0;

for(int i=0; ;i++)

{for(j=0;j<4;j++)sum+= ;

p++;

}

return sum/(n*4);

}

void main( )

{ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};

printf(”平均值=%f ”,average( ));

}

3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。如下图:

head L L

提示:本算法的思想是,逐个地把L的当前结点q插入新的链表头部,p为新表表头.

void reverse(NODE * L)

{

p=L->next;

q=p->next;

;

while(q!=NULL)

{

p->next=L;

L=p;

p=q;

;

}

p->next=L;L=p;

}

4. (3*2分=6分)以下程序实现链表L中删除第i个元素(设1≤i≤元素个数) void Delete(NODE *L,int i)

{NODE *p,*q;

if(i= =1) {q=L;L=L->next; } //删除第一个元素

else

{

p=L;

while(--i>1) ;

q=p->next;

; //删除第i个元素

}

;

}

5. (4*2.5分=10分)设链表上结点的数据结构定义如下:

struct PNODE{

int x;

PNODE *next;

};

设已建立了一条链表,h为链表首指针。函数DelAdd的功能为:若链表上能找到结点的x值为value,则从链表上删除该结点(假设链表上各个结点值是不同的);否则构造一个新结点,其x 的值为value,并将新结点插入链尾。该函数要返回链表的首指针。

PNODE *DelAdd(PNODE *h, int value)

{

PNODE *p1, *p2;

int flag=0; //值为1时,表示已删除值为value的结点p1=h;

while(p1 && flag= =0)

{ if(p1->x= =value)

{ flag=1;

if(p1= =h){h= ; free( p1); }

else{p2->next= ; free( p1);}

}

else {p2=p1; p1= ;}

}

if(flag= =0)

{

p1=(PNODE *)malloc(sizeof (PNODE));

p1->x=value;

p1->next=0;

if(h= =0) h=p1;

else ;

}

return h;

}

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

C语言程序设计模拟试题2(附答案)new

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是______ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) { if (x>amax) amax=x; else if (x

} 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 1 14131312121+? ++?+?+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

c语言试题及答案 (2)

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 输出结果:

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

C语言考试题库及答案,推荐文档(2)

C 语言理论上机考试选择题部分(共200 题) 1、下面程序的输出是___D ______ #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、在下列选项中,不正确的赋值语句是__D _______ A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是_______ A ____ . A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9 的值是________ D ___ . A) true B) 非零值C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是 B . A) Double B) short C) integer D) Char 6、字符(char) 型数据在微机内存中的存储形式是 __D__. A) 反码B) 补码C) EBCDIC 码D) ASCII 码 7、 C 语言程序的基本单位是 ____ C _____ . A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是 ___ D ___ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10 、下面程序的输出是____ B _____ . {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11 、下面程序的输出的是_____ C ___ . #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ . #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) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0 的关 系,则能正确表示这一关系的表达式为_______ D__. A) a<>0 B) !a C) a=0 D) a 14、以下程序的输出结果是____ D _____. #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 15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是____ D ____ . A) 1 B) 0 C) 4 D) 3 16、为表示关系x > y > z,应使用C语言表达式 ___A___. 17、 C 语言中非空的基本数据类型包括_____ B ___ . A) 整型,实型,逻辑型B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 #include void main() A) (x>=y)&&(y>=z) C) (x>=y>=z) B) (x>=y)AND(y>=z) D) (x>=y) & (y>=z)

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 语言字符型常量。

C语言模拟试卷2(带答案)

单选题: C.100200 1、执行下面的程序段后 ,变量k 中的 值为 D. 输出格式符不够,输出不确定的值 s[0]=k;k=s [1]*10; 答案:A A. 不定值 7、请读程序片段(字符串 内没有空格字符 ): B.33 printf("%d\n",strlen("A TS\n012\1\\")); C.30 上面程序片段 的输出结果是 D.10 A.11 答案:A B.9 2、设有以下 定义: C.10 #define N 3 D.8 #define Y(n) ((N+1 )*n) 答案:B 则执行语 句:z=2*(N+Y(5+1)); 后,z 的值为_______.2*(3+(4*5+1) 8、设有以下程序段 intx=0,s=0; A. 出错 while(!x!=0)s +=++x; B.42 printf("%d",s ); C.48 则______ D.54 A. 运行程序段后输出 0 答案:C B. 运行程序段后输出 1 3、若已定义X 和Y 为double 型,则表达式:x=1,y=x+3/2 的值是____ C. 程序段中的控制表达式是非法的 A.1 D. 程序段执行无限次 B.2 答案:B C.2.0 9、阅读下列程序: D.2.5 main() 答案:c {intn[3],i ,j,k; 4、请选出以下语句 的输出结果 ____ for(i=0;i 〈3;i++) printf("%d\n",str len("\t\065\xff\n ")) n[i]=0 ; A.5 k=2; B.4 for(i=0;i

C语言测试题2

一、选择题 1.语句int a=10,*point=&a;其值不为地址。 A. point B. &a C. &point D. *point 2.若p为指针变量,y为变量,则y = *p++;的含义是 A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 A. ”visual C++” B.str的首地址 C. \n D.”v” 4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为 A.T,Father,F B.Teaher,F,Father C. Teacher,Father,Father D.语法错,无输出 5.下列说明或赋值语句,不正确的是 A. char *p;p=”Visual C++”; B. char p1[12]={…v?,?i?,?s?,?u?}; C. char p2[12];p2=”Visual C++” D. char p3[]=”Visual”; 6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 A.p+=3*4+3 B.p+=2*4+3 C. p+=(3*4+3)*sizeof(int) D.p+=(2*4+3)*sizeof(int) 7.语句int i,*p1,**p2;以下语句语法不正确的是 A.p1=&i; B. p2=&i; C.p2=&p1; D.i=?\0x23?; 8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能 ..把结点b连接到结点a之后的语句是 C. p->next=&b; D.(*p).next=q; 9.下面正确的语句是 A. int a[3][4],(*p)[4]; p=a; B. int a[3][4],*p[4]; p=a; C. int a[3][4],*p; p=a; D. int a[3][4],**p;*p=a; 10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 A.fp=fopen("a:\\aa.dat","ab"); B. fp=fopen("a:\\aa.dat","a"); C. fp=fopen("a:\\aa.dat","r+"); D. fp=fopen("a:\\aa.dat","w"); 11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, A.函数返回值100 B. 函数返回值150 C. 函数返回二个值100和150 D. 语句return 100,150;语法错.

C语言2复习题

判断题 1.函数若无返回值,则它一定无形参。× 2.在 C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。× 3.C程序总是从main( ) 函数的第一条语句开始执行的。√ 4.同一函数内可以有多个return语句。√ 5.main函数中的变量名不可以与其它函数相同。× 6.C程序可由多个函数组成,但必须有并且只有一个主函数main。√ 7.在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。× 8.主函数中定义的变量的作用域仅限于主函数内。√ 9.传值调用的形参只有在被调用时,才被创建(分配存储单元)。√ 10.C程序执行总是从第一个函数开始。× 11.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。× 12.被main函数调用的函数只能是库函数。× 13.函数说明指的是在程序中设定一个函数模块。× 14.在C程序中,若对函数类型未加说明,则函数的隐含类型为void。× 15.形参可以是常量、变量或表达式。× 16.函数调用可以作为一个函数的形参。× 17.C语言规定,实参应与其对应的形参类型一致。√ 18.定义函数时,形参的类型说明可以放在函数体内。× 19.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。√ 20.全局变量可以被任何一个函数中的任何一个表达式使用。× 21.函数的隐含存储类型是extern。√ 22.定义在main函数后的任何函数都需在main中进行函数声明。× 23.a是一维数组名,数组元素a[1]还可以写作―*(a++)‖。× 24.C语言中数组名是指针常量。√ 25.构成数组的各个元素必须具有相同的类型。√ 26.数组元素的下标可以选用正整数或正实数。× 27.数组名可以作为参数进行传递。√ 28.若有定义―int a[4][5];‖,则在数组元素a[3][3]前有12个元素。× 29.若有定义int a[3][4];则共有12个元素,最后一个元素是a[3][4]。× 30.字符数组中字符串可以整体输入输出。√ 31.若有定义语句―char s1[ ]="abc",s2[ ]={'a','b','c'};‖,则数组s1和数组s2均有3个元 素。× 32.若a为一维数组名,则*(a+i)与a[i]等价。√ 33.函数原型为―void sort(float a[],int n)‖,调用该函数时,形参数组a被创建,实参数组各 元素的值被复制到a数组各元素中。× 34.C允许对数组的大小作动态定义,即可用变量定义数组的大小。× 35.数组定义int a[10]; 也可以写成int a(10); 。× 36.在对全部数组元素赋初值时,可以不指定数组长度。√ 37.定义s为5×6(5行6列)的数组可写成float a[5,6]; × 38.数组定义int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。× 39.static char c[]={'a' ,' ','b','o','o','k','\0'};与static char c[]={'a' ,' ' ,'b','o','o','k'}; 等价。× 40.设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={―book‖}; c2=c1; × 41.调用函数时,实参为数组名,则向数组传递的是数组的首地址。√

C语言试卷及答案_(2)

安徽大学20 -20 学年第学期 《C语言程序设计》期末考试试卷(B卷120分钟) 年级院系专业姓名学号座位号 下列各题A)、B)、C)、D) 四个选项中只有一个是正确的,请将 正确选项填在答题卡相应题目的横线上。答在试卷上不得分。 1.执行程序: int a; printf("%d \n", (a=3*5, a*4, a+5) );后,a的值是______。 A)60 B)20 C)15 D)10 2.程序段:int x=023; printf("%d \n", --x );的输出是______。 A)19 B)18 C)23 D)22 3.程序段:static char s[10]={'C','h','i','n','a'}; printf("%d\n",strlen(s));的输出是______。 A)6 B)5 C)11 D)10 4.若fun( int x) { printf(“%d\n”,x);}, 则fun_______。 A)返回值为void 类型B)返回值类型无法确定 C)返回值为int 类型D)没有返回值 5. 有宏定义:#define MULT1(a,b) a*b #define MULT2(a,b) (a)*(b) 且引用宏:y=MULT1(3+2,5+8); z=MULT2(3+2,5+8); 则y和z的值是______。 A)y=65,z=65 B)y=21,z=65 C)y=65,z=21 D)y=21,z=21 6.程序段char s[]="Hello", *p; p=s;执行后,*(p+5)的值是______。 A)'o' B)'\0' C)'o'的地址D)不确定的值 7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。 A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 8. 若定义:int (*p)[3]; 则标识符p______。 A)定义不合法。 B)是一个指针数组名,每个元素是一个指向整型变量的指针。 C)是一个指针,它指向一个具有三个元素的一维数组。 D)是一个指向整型变量的指针。 9. 定义: struct sk {int a; float b;} data,*p; 且p=&data; 则正确引用成员a的方式是______。 A) p.data.a B) (*p).a C) p->data.a D) (*p).data.a 10. 以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是______。 A)FILE *fp; B)FILE *fp; fp=fopen("file1","rb"); fp=fopen("file1","r+");

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语言试题2

124 第 6 章选择结构程序设计 考纲要求 1.用if语句实现选择结构。 2.用switch语句实现多分支选择结构。 3.选择结构的嵌套。 知识点讲析 【用if语句实现选择结构】 C语言中的if语句有两种基本形式: 不含else子句的if语句 语句形式如下: if(表达式) 语句 例如: if(x>y) printf("%d",x); 其中,if是C语言的关键字,表达式两侧的圆括号不可少,最后是一条语句,称为if 子句。如果在if子句中需要多个语句,则应该使用花括号把一组语句括起来组成复合语句,这样在语法上仍满足“一条语句”的要求。 含else子句的if语句 语句形式如下: if(表达式) 语句1 else 语句2 例如: if(x>y) printf("%d",x); else 125 printf("%d",y); 在这里,“语句1”称为if子句,“语句2”称为else子句,这些子句只允许是一条语句,若需要多条语句时,则应该使用花括号把这些语句括起来组成复合语句。 读者应该注意:else不是一条独立的语句,它只是if语句的一部分,不允许有这样的语句: else printf("***"); 在程序中else必须与if配对,共同组成一条if-else语句。 【用switch语句实现多分支选择结构】 switch语句是多分支选择语句。语句形式如下所示。 switch(表达式) { case 常量表达式1:语句1 case 常量表.达式2:语句2 .

case 常量表达式n:语句n default :语句n+1 } 说明 1.switch是关键字,switch语句后面用花括号括起来的部分称为switch语句体。 2.紧跟在switch后一对括号中的“表达式”可以是整型表达式及后面将要学习的字符型或枚举型表达式等。表达式两边的一对括号不能省略。 3.case也是关键字,与其后面的常量表达式合称case语句标号。常量表达式的类型必须与swicth后的表达式类型相同。各case语句标号的值应该互不相同。 4.default也是关键字,起标号的作用。代表所有case标号之外的那些标号。default 标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。 5.case语句标号后的语句1,语句2,等等,可以是一条语句,也可以是若干语句。 6.必要时,case语句标号后的语句可以省略不写。 7.在关键字case和常量表达式之间一定要有空格,例如case 10:不能写成case10:。【选择结构的嵌套】 前面我们介绍了用if语句实现的选择结构和用switch语句实现的多分支选择结构,接下来我们来介绍一下选择结构的嵌套。if和else子句可以是任意合法的C语句,因此当然也可以是if语句,通常称此为嵌套的if语句。内嵌的if语句既可以嵌套在if子句中,又可以嵌套在else子句中。 在if子句中嵌套具有else子句的if语句 语句形式如下: if(表达式1) if(表达式2) 语句1 else 语句2 else 语句3 当表达式1的值为非0时,执行内嵌的if-else语句;当表达式1的值为0时,执行语句3。 在if子句中嵌套不含else子句的if语句 语句形式如下: if(表达式1) { if(表达式2) 语句1 } else 语句2 注意:在if子句中的一对花括号不可缺少。因为C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。因此以上语句如果写成: if(表达式1) if(表达式2) 语句1

c语言试题及答案

一、单选题 1.在C语言中,下列类型属于构造类型的是( D ) A.整型 B.字符型 C.实型 D.数组类型 2.下列字符串不是标识符的是( D ) A. sum B. Average C. Day_night D. M.D.JOHN 3. 在C语言中,回车换行符是( A ) A. n B. t C. v D. b 4. 在C语言中,语句和数据定义是用( C )作为结束标记的A.句号 B.逗号 C.分号 D.括号 5. 设有如下定义: int x=10,y=5,z; 则语句printf(“%dn”,z=(x+=y,x/y)); 的输出结果是( C ) A.0 B.1 C.3 D.4 6. 10.以下程序的输出结果是( B ) main( ) {char c1=’8’,c2=’2’; printf(“%c,%c,%d,%dn”,c1,c2,c1-c2,c1+c2); }

A.因输出格式不合法,输出出错信息 B.8,2,6,106 C.8,2,6,10 D.8,2,5,9 7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( A )main( ) {int x; scanf(“%d”,&x); if(x++>5) printf(“%dn”,x); else printf(“%dn”,x--); } A.7和5 B.7和4 C.6和4 8.表达式(int)2.1416的值时( A ) A. 2 B. 2.1 C. 0 D. 3 9.下列运算符优先级最高的是( B ) A. > B. + C. && D. != 10. C语言容许函数值类型缺省定义,此时该函数值隐含的类型时( B ) A. float型 B. Int型 C. Long 型 D. Double型 11、C程序的基本构成单位是( C) A、子程序 B、过程 C、函数 D、文件 12、C语言中要求操作数都为整型数据的算术符是(C )

C语言试卷2及答案

装 订 线 内 答 题 无 效 ○………○………○………○………○………○…(装)…○………○…(订)…○………○…(线)…○………○………○………○………○………○ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 四川天一学院统一考试试卷 【科目:程序设计基础】 【试卷编号:IE210400-02】 第 1 页 共 5 页 (请考生在此处填写自己的学号及座位号)学号: 座位号: 四川天一学院 2011-2012学年第二学期期末考试 科目:程序设计基础 试卷编号:IE210400-02 以下方框相应空白处由出卷教师填写 以下方框相应空白处由考生用蓝色或黑色笔迹填写 以下方框相应空白处由阅卷教师用红色笔迹填写,考生不得填涂 一、填空题(本大题共10小题,每小题1分,共10 分)。 1、C 语言的源程序必须通过 和连接后,才能被计算机执行。 2、C 语言源程序的基本单位是 。 3、若x=5,表达式x+=5的值为 。 4、在C 语言中,用关键字 定义整型变量,用关键字 定义字符型变量。 5、设a 、b 、c 均为int 型变量且a=3,b=4,c=5,则表达式a||b+c&& c 的值是 。 6、若x=12,则表达式y=x>12?x+10:x-12的值为 。 7、若有定义语句:float a=2.5,b=2.7,则表达式16/(int)(a+b)%2的值是 。 8、若有条件“|x|<2”,其对应的C 语言表达式是 。 9、在C 语言的赋值表达式中,赋值号左边必须是 。 二、单选题(本大题共15个小题,每小题2分,共30 分)。 1、一个C 程序的执行是从( )。 A.本程序的main 函数开始,到main 函数结束 B.本程序的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main 函数开始,到本程序文件的最后一个函数结束 D.本程序的第一个函数开始,到本程序的main 函数结束 2、以下叙述不正确的是( )。 A.一个C 源程序可由一个或多个函数组成 B.一个C 源程序必须包含一个main 函数 C.C 程序的基本组成单位是函数 D.在C 程序中,注释说明只能位于一条语句的后面 3、C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( )。 A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母、数字和下划线中任一种字符 4、 若有代数式bc ae 3,则不正确的C 语言表达式是( )。 A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/b/c*3 5、以下表达式值为3的是( )。 诚信承诺: 考试中,我将自觉遵守《考生守则》和考场纪律,服从考场安排;如有违规行为,将自愿接受校纪校规相关条款的处理。 承诺人: 学号: 系 别: 班级: 登分栏: 题号 一 二 三 四 五 六 总分 登分人 分数 阅卷要求: 1、阅卷教师必须用红色笔迹阅卷,阅卷时每题答案处须按评分标准用阿拉伯数字注明得分情况,完全答错或未答的,作大型“0”记号,不得打负分或作其他标记(实践类题目或答案为文字描述性题目,依据评分标准,注明分项名称及每项得分;写作类题目必须将错误词句用“ ”标注)。 2、大题总分汇总后填入登分栏相应位置,每份试卷阅完后由登分人(阅卷人)将各大题总分汇总后填入总分一栏中,并在登分人一栏中填入登分人姓名。 3、阅卷教师必须按照评分标准,公平、公正、认真地评阅试卷,不得随意加分或降分;若因误评或漏评确需更改时,需在改动处用“=”标注,在改动位置下方用阿拉伯数字书写正确分数,并在改动处上方签名;阅卷结束后及时将总分录入教务管理系统“期末成绩”一栏中。 试卷说明: 1、本试卷为【闭卷】。 2、本试卷共 4 页, 4 个大题,满分100分。 3、考试时间: 120 分钟。 4、考生必须用蓝色或黑色笔迹答题;其他笔迹答题无效。

c语言程序设计试题2

C语言试卷-2 一、选择题(评分标准 20 分,每小题2分) 1. 执行语句“a=b=3; printf(“%d,%d\n”, a<<2, b>>2);”后的输出结果为________。 (A)12,0 (B)12,3 (C)false,true (D)true,false 2. 若a是32位int整型变量,判断其最低2个二进位均为1的表达式为________。 (A)a&3==3 (B)a&3==11 (C)a&11==3 (D)a&11==11 3. 以“只读”方式打开文本文件c:\,下列语句中哪一个是正确的________。 (A)fp=fopen(“c:\\”, “a”); (B)fp=fopen(“c:\\”, “r”); (C)fp=fopen(“c:\\”, “wb”); (D)fp=fopen(“c:\”, “r”); 4. 为表示“a和b都不等于0”,应使用的C语言表达式是_______。 (A)(a!=0) ‖(b!=0) (B)a‖b (C)!(a=0)&&(b!=0) (D)a&&b 5. 若x是单精度实型变量,k是基本整型变量,以下正确的输入语句是________。 (A)scan f(“%f%d”, &x,&k); (B)scanf(“%f%d”, x,k); (C)scanf(“%d%f”, &x,&k) (D)scanf(“%d%f”, x,k); 6. 下列运算中优先级最低的是________。 (A)* (B)<< (C)= (D)-> 7. 已知字符‘c’的ASC II为99,语句printf(“%d,%c”, ‘c’, ‘c’+1);输出为________。(A)99,c (B)99, 100 (C)99,d (D)语句不合法 8. 不正确的赋值或赋初值的方式是________。 (A)char str[6]={‘s’,’t’,’r’, ’i’,’n’,’g’}; (B)char str[10]=”string” (C)char *str=”string”; (D)char str[10]; str=”string”;" 9. C 语言程序中可以对程序进行注释,注释部分必须用符号_________括起来。 (A)‘{‘ 和’}’ (B)‘[‘和’]’ (C)“/*”和”*/” (D)“*/”和”/*” 10. ________是合法的用户自定义标识符。 (A)b-b (B)float (C) (D)_isw

相关主题
文本预览
相关文档 最新文档