2013年C语言程序设计试卷

2013年C语言程序设计试卷
2013年C语言程序设计试卷

计算机学院2012-2013学年第2学期C语言程序设计考试试卷

A卷(或B卷): A卷闭卷(或开卷):闭卷考试时间:2013年 7 月 5 日

专业班级学号学生姓名

题号一二三四五六七总分核对人

题分10 10 10 10 20 20 20 100

得分

注意:试卷后面附有运算符的优先级和结合性表。

一、单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项得分评卷人

是正确的,请选择正确的选项并填写到括号内,选择正确得分。本大题

共10小题,每小题1分,共10分。)

1、以下为正确的标识符是【】

A、for

B、u.3

C、3c

D、DO

2、以下为合法的整型常量是【】

A、-1U

B、01111001B

C、ffff

D、0138

3、下列数据中属于字符串常量的是【】

A、'a'

B、"a"b"c"

C、'123'

D、"a\"b\"c"

4、表达式-a+++b中记号(token)的个数是【】

A、3个

B、4个

C、5个

D、6个

5、 -3的16位补码是【】

A、0xfffd

B、0x1011

C、0x7ffd

D、0x0003

6、以下为正确的转义字符是【】

A、'\'

B、'\\'

C、'\0x12'

D、'\0f1'

7、设有声明:enum {U,V,W=0,X,Y=0,Z} a; 则值为1的枚举常量的个数是【】

A、1个

B、2个

C、3个

D、4个

8、设有声明: 【】

union U{ long a; short b; char c; char s[20];} v={0x01020304},*p=&v;

则下列选项正确的是

A、printf("%d\n",sizeof(v))输出4

B、printf("%d\n",p->s[0])输出4

C、printf("%d\n",v.c)输出1

D、printf("%x\n",v.b)输出102

9、设有声明和语句:FILE *fp; fp=fopen("c:\\abc.dat","r+"); 【】

则下列选项正确的是

A、打开文件的文件名为\abc.dat

B、打开的是二进制文件

C、打开的是文本文件

D、打开的文件只能进行读操作

10、设有如下代码片段:【】

int a[]={1,2,3,4,5},i;

char *p=(char *)a;

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

printf("%d ",*((p+=sizeof(int))-sizeof(int)));

printf("\n");

则该代码片段的输出结果是

A、1 2 3 4 5

B、1 2 3

C、1 1 1

D、2 3 4

二、 多项选择题(下面每小题的A 、B 、C 、D 备选项中,有两个或两个以上的选项是正确的,请选择正确的选项并填写到括号内。本大题共5小题,每小题2分,共10分。) 1、设有声明:char s[]="abcdefg",*p=s,ch;则运算结果为’e ’的选项有 【 】

A 、ch=s[4];

B 、*(p+4);

C 、*(s+4);

D 、*s 2、设有声明:int x=10,y=20,*p=&x;下面选项中非法的表达式有 【 】

A 、y+=*p;

B 、*p+1=y;

C 、y+1=x;

D 、x=y+=10;

3、设有声明: int a=5,b=10,t;则下面各表达式功能及结果都相同的有 【 】 A 、a+=b,b=a-b,a-=b B 、a*=b,b=a/b,a/=b

C 、a^=b,b^=a,a^=b

D 、t=b,b=a,a=t 4、设part.exe 程序带形如int main (int argc,char *argv[]){...}的 【 】 main 函数。则输入命令行:part.exe abc.dat def.dat xyz.dat uvw.dat 时下面选项正确的有

A 、printf("%d\n",argc)输出5

B 、printf("%d\n",argc)输出4

C 、printf("%s\n",argv[1])输出abc.dat

D 、printf("%c\n",argv[2][2])输出f

5、设有以下说明: 【 】

struct T {

unsigned short a : 1; unsigned short b : 2; unsigned short c : 3; unsigned short d : 4; unsigned short e : 6; } x,*p=&x ;

则下面对字段变量各成员赋值正确的有

A 、x.a = 2

B 、p->b = 3

C 、*p.c = 4

D 、x.d = 5

三、 填空题(本大题共10小题,每小题1分,共10分。) 本大题的第1题至第5题请参考下面的说明,请计算出表达式的值和类型并填入各题前面的括号中,各题的表达式相互无关。

以下程序假设在32位机上运行。 char c1=’A ’, c2;

unsigned short i=65535,j=2; short int m=4, n=1; float x=7.34, y=7.0;

【 】 1、c2=c1+j 【 】 2、m=i 【 】 3、m^=n<

【 】 4、n

struct T{ int i;

得分 评卷人 得分 评卷人

char c[20];

char *pc;

struct T *next;

} t2={2,“final exam.”,t2.c,NULL},t1={1,“This is the”,t1.c,&t2}, *p=&t1;

【】6、t1.i

【】7、p->c[0]

【】8、t1.next->i

【】9、*++p->pc

【】10、p->next->next=p,t2.next->i

得分评卷人

四、判断改错题(先判断下面各题中是否存在错误;如果存在错误,请改

正之;否则不必改。本大题共5小题,每小题2分,共10分。)

1、本小题的程序段如下:

char s1[20]="abcde",s2[20];

s2=s1;

2、以下代码段接受从键盘输入的字符串,并输出:

char *p;

gets(p);

printf("%s",p);

3、定义一个带参的宏THR (x),它求x的三次方,#define THR(x) (x)*(x)*(x)

4、输出2维数组元素m[1][2]的代码片段如下:

int m[3][4], (*p)[4]=m;

p=p+1;

printf("%d",*p[2]);

5、下面程序希望计算并输出2n。例如输入2,程序输出4;输入3,程序输出8。

#include "stdio.h"

int f(void);

int main(void)

{

int i,n;

scanf("%d",&n);

for(i=1;i

f();

printf("2的%d次方是: %d\n",n,f());

return 0;

}

int f()

{

int f=1;

return f*=2;

}

五、简答题(本大题共5小题,每小题4分,共20分)

得分评卷人

1. 写一个表达式,判断字符变量ch的值是否是字母。

2. 写一个表达式,将unsigned short int型数x的高低字节对调。

3. 定义一个带参的宏ABS(e),用来求表达式e的绝对值。表达式e的类型可以是char、short、int或long,宏调用表达式的值为e的绝对值。

4. 用完全等效的新代码段替代以下代码,要求新代码段中不得使用转移语句。

for (i=2; i*i<=n; i++)

if (!(m = n % i))

break;

5.设p是长度为3的函数指针数组,该数组中元素的类型为指向无参字符指针函数的指针。请写出相应的声明语句。

得分评卷人

六、阅读程序并写出其运行结果(本大题共5小题,每小题4分,共20分。)

1、请写出下面程序的运行结果。

#include

int f(int m){

switch(m){

case 0:break;

case 1:m++;

case 2:m--;

}

return m;

}

int main(void){

int i=0,a[]={2,1,0},m;

while(m=f(a[i])){

i++;

printf("%d ",m);

}

return 0;

}

2、请写出下面程序的运行结果。

#include "stdio.h"

int s(int *p,int n);

int main(void){

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

printf("the result is %d\n",s(a,3));

return 0;

}

int s(int *p,int n){

if(n==0)

return 0;

else

return (*p + s(p+1,n-1));

}

#include "math.h"

int f(int n);

int main(void){

int i,a[3]={3,10,7},*p=a;

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

if(f(p[i]))

printf("%d\t",*(p+i));

printf("\n");

return 0;

}

int f(int n){

int i,m,flag=0;

for (i=2; i<=sqrt(n); ++i)

if(!(m = n % i)) break;

if (m) flag=1;

return flag;

}

4、请写出下面程序的运行结果。

#include

void f(char * s,int c[]){

char ch;

while(ch=*(s++)){

if('a'<=ch && ch<='z')

c[ch-'a']+=1;

else if ('A'<=ch && ch<='Z')

c[ch-'A']+=1;

}

}

int main(void){

char a[]="Keep on going never give up";

static int count[26],i;

f(a,count);

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

if(count[i]>2)

printf("%c\t",'A'+i);

return 0;

}

typedef struct{int m;int n;} pair_t;

int f(int x[],int n,int s,pair_t * r){

int i,j;

i=0,j=n-1;

while(i

if(x[i]+x[j]==s){r->m=i,r->n=j;return 1;}

if(x[i]+x[j]

}

return 0;

}

int main(void){

int a[]={2,3,4,7,9,11,12,16},s=16;

pair_t r;

if(f(a,8,s,&r))

printf("%d %d %d",a[r.m],a[r.n],s);

else

printf("No solution!");

return 0;

}

得分评卷人

七、完善程序(本大题有,3小题,给出的都是部分程序,通过填空来完善程

序。本大题共10空,每空2分,共20分。)

1、本大题第①、②、③空请参阅下面的部分程序。

[程序说明] 下面的程序输出:

Books

Books are our friends.

请将下面程序中①、②、③处应该完善的内容填写在本小题后①、②、③后面的下划线处。

#include

char* copy(char to[], char from[]);

char *mystrcat(char *t,char *s);

int main(void)

{

char a[80],b[40]="Books ",c[40]="are our friends.";

printf("%s\n",copy(a,b));

printf("%s\n", ① (a,c));

return 0;

}

char * copy (char to[], char from[] ) /* 拷贝串from到串to */

{

int i=0;

while((to[i]=from[i])!='\0')

② ;

return to;

}

char *mystrcat(char *t,char *s) /* 连接串s到串t的尾部*/

{

int i=0,j=0;

while(t[i]!=0) i++;

while(s[j]!=0)

t[i]=s[j],i++,j++;

t[i]= ③ ;

return t;

}

2、本大题第④、⑤、⑥空请参阅下面的部分程序。

[程序说明]下面的程序首先用直接插入法对数组a排序,然后用二分查找法在a中找输入值y。请将下面程序中④、⑤、⑥应该完善的内容填写在本小题后④、⑤、⑥后面的下划线处。

#include

int BinSearch(int a[], int n,int x);

void InsertSort(int x[], int n);

int main(void)

{

int a[10]={9,1,52,-12,2,26,48,32,15,16};

int y,index;

InsertSort(a,10);

scanf("%d",&y);

if((index=BinSearch(a,10,y))!=-1)

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

else

printf("a中不存在%d\n",y);

return 0;

}

/* 直接插入排序算法, 对n个整数递增排序 */

void InsertSort(int x[], int n)

{

int i,j,t;

for (i=1; i

{

t = x[i]; /* 使用变量t临时保存待插入元素x[i] */

for (j=i-1; j>=0 && t < x[j]; j--) /* 在有序区中查找应插入的位置 */

{

_ __④_ __ = x[j]; /* 后移一个位置 */

}

x[j+1] = t; /* 插入 */

}

}

/* 采用二分法在n个数组成的有序序列a中查找x,

找到,返回x在a中的下标值,否则,返回-1。 */

int BinSearch(int a[], int n,int x)

{

int low,high,mid;

low=0;

high = _ __⑤_ __ ;

while(low <= high)

{

mid= (low+ high)/ 2;

if (x == a[mid])

__ __⑥__ __;

else if(x

high= mid- 1;

else

low= mid + 1;

}

return -1;

}

3、本大题第⑦、⑧、⑨、⑩空请参阅下面的部分程序。

[程序说明] 约瑟夫环问题。约瑟夫环问题的一种描述是:编号为1,2,3,……,n 的n个人按顺时针方向围坐一圈,每人手持一个密码(正整数),开始任意选一个整数m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从下一个人开始重新从1开始报数,如此下去直到所有的人全部都出列为止。

下面的程序利用循环单链表(即将单向链表尾结点指针域的指针指向该链表的头结点)结构模拟此过程,循环单链表的特点是链表中最后一个节点的指针域指向第一个节点,从而使链表形成一个环,如图1示。

图1 循环单链表结构

程序运行后首先要求用户输入总人数以及每人的密码,建立链表。然后输入初始报数值,开始报数,按照出列的顺序输出各人的编号。例如,当人数为7,密码分别为3 ,1,7,2,4,8,4时,输入初始报数值20,正确的结果:6 1 4 7 2 3 5

请将下面程序中⑦、⑧、⑨、⑩应该完善的内容填写在本小题后⑦、⑧、⑨、⑩后面的下划线处。

#include

#include

typedef struct node {

int num; /* 编号 */

int code; /* 密码 */

struct node *next;

}lnode;

int n; /* n为人的总个数 */

void creatlist(lnode **phead)

{

int i,key; /* key为输入的密码 */

lnode *p,*s,*head;

head=(lnode *)malloc(sizeof(lnode)); /*为头结点分配空间*/

p=head;

printf("Please enter the num of the person: "); /*输入人的总个数*/

scanf("%d",&n);

for(i=1;i<=n;i++) {

printf("Person %d code: ",i);

scanf("%d",&key); /*输入各个人的密码*/

s=p;

p=(lnode *)malloc(sizeof(lnode)); /*创建新的结点*/

s->next=p;

p->num=i;

_ __⑦__ _=key;

}

__ _⑧_ __;

p=head;

head=head->next;

free(p);

*phead=head;

}

int main(void)

{

int i,j,key;

lnode *p,*s,*head;

creatlist(&head);

printf("\nPlease enter your first key: "); /* 输入第一个报数值 */ scanf("%d",&key);

do { /* 开始报数 */

j=1; /* j为记数器 */

p=head;

while(j

s=p;

p=_ __⑨_ __;

j++;

}

i=p->num;

key=p->code;

printf("%d ",i); /* 输出出列人的编号 */

_ __⑩_ __ ;

head=p->next; /* 重新定义head,下次循环的开始结点 */ free(p);

n--; /* 每循环一次人数减1 */

} while(n>0);

return 0;

}

⑦、

⑧、

⑨、

⑩、

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

精选C语言试卷(带答案).

2006-2007学年第二学期考试试卷A卷 考试科目C语言程序设计考试方式闭卷完成时限2小时 拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业 说明: 1.应将全部答案写在答卷纸对应的题号处;否则作无效处理; 2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3.考试完成后,必须将试卷与答卷同时交回。 一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。 3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。 4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。 7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。 9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。 10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。 二、单选题(16小题,每题1分,共16分) 1.以下数组定义中错误的是: (A) int x[][3] ={0}; (B) int x[2][3]={{1,2},{3,4},{5,6}};

(C) int x[][3]={{1,2,3},{4,5,6}}; (D) int x[2][3]={1,2,3,4,5,6}; 2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为: (A)EOF (B)NULL (C) 0 (D)非0值 3.有以下程序: main() {int y=10; while(y--) ; printf(“y=%d\n”,y); } 程序执行后的输出结果是: (A) y=0; (B)y=-1; (C) y=1 (D)while构成无限循环 4. 若有以下宏定义: #define N 2 #define Y(n) (N+1)*n 则执行语句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19 (D)无定值 5.以下叙述中错误的是: (A)c程序必须由一个或者一个以上的函数组成。 (B)函数调用可以作为一个独立的语句存在。 (C)若函数有返回值,必须通过return 语句返回。 (D)函数形参的值也可以传回给对应的实参。 6.设有如下定义的变量 union data { int i; char ch; float f; }b; 则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节): (A) 4 (B)5 (C) 6 (D)7 7.以下叙述中错误的是:

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语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

湖南大学C语言程序设计试卷

第 1 页(共 6 页)

三、写出程序运行结果(每题 5 分,共20分) 1.main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d\n”,m); } 程序运行后的输出结果是: 2.float fun(int x, int y) {return (x+y);} main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c));} 程序运行后的输出结果是: 3.void fun(char *c,int d) { *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main() { char a='A',b='a'; fun(&b,a); printf("%c,%c\n",a,b); } 程序运行后的输出结果是: 4.struct stu { char num[10]; float score[3]; }; main() { struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2f\n",sum); } 程序运行后的输出结果是: 第 2 页(共 6 页)

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C++语言程序设计试题试题和答案

C 语言程序设计试卷 ,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是( B )。 A. +1e+1 5e-9.4 03e2 B. -.60 12e-4 -8e5 C. 123e 1.2e-.4 +2e-1 D. -e3 .8e-4 5.e-0 3. 若a=-14,b=3,则条件表达式 a

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #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); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

2013年春C语言试题

湖北科技学院2013学年春季学期2012级 《高级语言程序设计(C语言)》期末考试试卷(A卷、闭卷) 一.选择题:(每小题1分,共40分) 1.C语言规定,必须用( )作为主函数名。 A) Function B) include C) main D) stdio 2.下列说法正确的是( )。 A) 在执行C程序时不是从main 函数开始的 B) C程序书写格式严格限制,一行内必须写一个语句 C) C程序书写格式自由,一个语句可以分写在多行上 D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号 3.下列字符串是用户标识符的是( )。 A) _HJ B) 9_student C) long D) float 4.下列数据中是合法的整型常量的是( )。 A) 3E2 B) 029 C) -32768 D) 6e+007 5.语句int k,i=3;k=(i++)+(i++)+(i++);执行过后k和i的值分别为( )。 A) 9,6 B) 12,5 C) 18,6 D) 15,5 6.10+?a?+1.5-567.345/?b?的结果是( )型数据。 A) long B) double C) int D) unsigned float 7.在C 语言中,下列类型属于构造类型的是( )。 A) 整型B) 指针类型C) 实型D) 结构体类型 8.在C语言中,退格符是( )。 A) \n B) \t C) \v D) \b 9.下列符号中,可以作为变量名的是( )。 A) +c B) *X C) _DAY D) next-day 10.以下程序的输出结果是( )。 void main() { unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf("%d\n",d); } A) 3 B) 4 C) 5 D) 6 11.若已知a=5,b=10,则表达式a==b的值为( )。 A) 10 B) 20 C) 1 D) 0 12.已有定义” int a=-2; ”和输出语句” printf( “%8x”, a );“,以下正确的叙述是( )。 A) 整型变量的输出形式只有%d一种 B) %x是格式控制符的一种,它可以适用于任何一种类型的数据 C) %x是格式控制符的一种,其变量的值按十六进制输出,但%8x是错误的 D) %8x不是错误的格式控制符,其中数字8规定了输出数据的宽度 13. 在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个( )。 A) 函数B) 文件C) 变量D) 子程序 14.语句 int x=10, y=20, z=30; if (x>y) z=x; x=y; y=z; 执行后x、y、z的值是( )。 A) x=10,y=20,z=30 B) x=20,y=30,z=30

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

(完整版)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语言程序设计》试题四 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

c语言试卷及其答案

读书破万卷下笔如有神

1

…………试卷装 订线 ……………… 装订线内不要答题,不要填写考生信息……………… 试卷装 订线printf(?%d, %c \n?, c2-c1, c2-(?a?-?A?)); … 院 3 e.D 2, E .C 3, E .B 2, M .A…学……下笔如有神读书破万卷

读书破万卷下笔如有神在函数调用中,若形参和实参都是简单变量,下面说法正确的是__16.实参和形参共用一个内存单

.实参和形参各占用一个独立的内存单 .由用户确定是否共用内存单 .由系统确定是否共用内存单 判断字符str是否大于字符str,应当使用__17if(str1>str2if(strcmp(str1,str2)) if(strcmp(str2,str1)>0)if(strcmp(str1,str2)>0) 以下正确的函数说明是__18float fun(int a; int bdouble fun( int fun(int a, bint fun(char a[][] 以下程序的运行结果是_19main(){ int a=1, i; for (i=0; i<3; i++) printf(%d, f1(a)); getch(); } f1(int x){ static int y=0,z=3; y++; z++; return(x+y+z); } 468 681 6766以下程序的运行结果是_20main(){ int x=6,y=5; if(x>y) x=y,y=x; else x++,y++; printf(%d,%d,x,y); getch(); } 7,6,5,5,A. 下笔如有神读书破万卷

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

C.语言程序设计试题试题与答案

C 语言程序设计试卷,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C 语言规定:在一个源程序中, main 函数的位置(C). A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是 A. +1e+15e-9.403e2 B. -.6012e-4-8e5 C. 123e1.2e-.4+2e-1 D. -e3.8e-45.e-0 3.若a=-14,b=3,则条件表达式 avb?a:b+1的值为(A)。 A. -14 B.-13 C.3 D.4 4. 已知:intn,i=1,j=2; A.1,2B.1,3C.2,2D.2,3 5. 为了判断两个字符串s1和s2是否相等,应当使用(D) A.if(s1==s2) B.if(s 仁s2) C. if(strcm p( s1,s2)) D. if(strcm p( s1,s2)==0) 6. 以下正确的描述是(B) o (B)。 执行语句n=ivj?i++:j++; 则i 和j 的值是(c).

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。 B. 函数的定义不可以嵌套,但函数的调用可以嵌套。 C. 函数的定义和函数的调用均不可以嵌套。 D. 函数的定义和函数的调用均可以嵌套。 7. 在C 语言中,下面对函数不正确的描述是 A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。 B. 允许函数递归调用。 C. 函数形参的作用范围只是局限于所定义的函数内。 D. 子函数必须位于主函数之前。 8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 A. 该变量只在该复合语句中有效 B. 该变量在该函数中有效 C. 该变量在本程序范围内均有效 D. 该变量为非法变量 9. 以下正确的函数形式是(D)。 A. doublefun(intx,inty){z=x+y;retum z;} B. fun(intx,y){int z; return z;} C. fun(x,y){intx,y;doublez;z=x+y;returnz;} D. doublefun(intx,inty){doublez;z=x+y;returnz;} 10. 以下程序的输出结果是(B)。 #includevstdio.h> (D)。 (A) o

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

2013年下C语言程序设计考试试卷

学院:班级:学号:姓名: 答案一律写在答题纸上,写在试题卷上无效 一、选择题(每小题3分,计36分) 1.以下选项中,不属于C语言结构化程序设计三种基本结构的是_______。 A)选择结构B)顺序结构 C)递归结构D)循环结构 2.已知:char a='\70';,则变量a________。 A)包含1个字符B)包含2个字符 C)包含3个字符D)说明非法 3.已知:float x=2,y;,则表达式y=x+3/2的值是________。 A)3.5 B)3.0 C)2.0 D)1.0 4.C语言中,运算对象必须是整型数值的运算符是________。 A)% B)/ C)< D) ! 5.以下选项中,能正确表示逻辑关系:“a≥10 或a≤0”的C语言表达式是______。 A﹚a>=0||a<=10 B﹚a≥10||a≤0 C﹚a>=10 && a<=0 D﹚a>=10||a<=0 6.已知:int a=5;,执行语句a=3*5,a*4,a+5;后,变量a的值是_________。 A)45 B)20 C)15 D)10 7.当说明一个结构体变量时系统分配给它的内存是( ) A)各成员所需内存量的总和B)结构中第一个成员所需内存量 C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量 8.已知:float x;int y;,用语句scanf("%f,%d",&x,&y);输入变量x,y的值,正确的输入是_________。 A)1.25,2 B)1.25 2 C)1.25:2 D)1.25;2 9.已知:int x=0,y=10;while(x

c语言试卷及答案1

c语言试卷及答案1

浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。

(二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)

相关文档
最新文档