搜档网
当前位置:搜档网 › C语言复习(1)

C语言复习(1)

C语言复习(1)
C语言复习(1)

第1章

C语言程序的结构

1.程序的构成,main函数和其他函数。p5-p6

例题:判断:C语言程序是由过程和函数组成的。(错)

2.预定义命令,类型定义,变量定义,组成程序的各个函数,程序中的注释。

3. 源程序后缀:.c

第2章数据

1基本数据类型:整型数据,浮点型数据,指针型数据

2常量:字面常量,符号常量

3变量:标识符,变量的定义,变量的初始化,变量的引用

4 输出与输入:基本输出,基本输入

输入输出函数的调用,正确输入数据并正确理解和设计输出格式。

●整数的表示范围、溢出情况:

?在整常量后加字母l或L,认为它是long int 型常量

?整常量后面加一个字母u或U,认为是unsigned int型

?16位整数的表数范围为:-32768-- +32767

若有声明"short int x;"且sizeof(x)的值为2,则当x值为时"x+1>x"为假。

●字符型与整型

char i=2;

char i=?2?;

int i=2;

int i=?2?;

●浮点数的表示

?指数形式:e或E之前必须有数字;指数必须为整数。

例题1:

下列选项中,不能作为合法常量的是()。

A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

例题2:

下列选项中可作为C 语言合法常量的是()。

A)-80 B)-080 C)-8e1.0 D)-80.0e

●字符常量:用单引号括起来的单个普通字符或转义字符

●转义字符:反斜线后面跟一个字符或一个代码值表示

main()

{

printf("\101 \x42 C\n");

printf("I say:\"How are you?\"\n");

printf("\\C Program\\\n");

●常见字符的ASCII码

…A? 65 0x41

…a? 97 0x61

…0? 48 0x30

char a=?b?-'A'+'0';

a=?A?+32;

●合法的用户标识符

下列不能定义的用户标识符是()。

A)Main B)_0 C)_int D)sizeof

●printf的使用

?字符串结尾应以?\0?结束,才能整体输出

●scanf的使用

◆scanf的输入分隔符的指定

●一般以空格、TAB或回车键作为分隔符

●其它字符做分隔符:格式串中两个格式符间字符

?scanf读入字符注意点:空格和转义字符作为有效字符输入

例题1:

欲使得a1的值为12,a2的值为34,c1的值为字符a,

c2的值为字符b,scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

输入形式应为:12a34b

例题2:

有下列程序:

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,则正确的输入是:

m=123 n=456 p=789

例题3:

char a,b,c,d;

scanf(“%c%c”,&a,&b);

c=getchar(); d=getchar();

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

输入:ab

cd

输出为:

ab

c

例题4:

main( )

{ int i=0, j=0, k=0;

scanf("%d%*d%d",&i,&j,&k); //p28-31四张表格

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

}

输入:10 20 30

输出为:10 30 0

?以整数格式为字符变量输入

main( )

{ char b;

scanf("%d", &b);

b=b*2;

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

}

输入:33

输出为:B

?用scanf读入字符串

◆字符串名或数组名本身就是地址,不需加&

有定义语句:int b; char c[10];,则正确的输入语句是()。

A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c);

C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);

◆不能将一行带有空格的字符串读入

若准备将字符串“This is a string.”记录下来,

错误的输入语句为:

(A)scanf(“%20s”,s);

(B)for(k=0;k<17;k++)

s[k]=getchar();

(C)while((c=getchar())!=…\n?)

s[k++]=c;

(D)gets(s);

第3章运算与表达式

1算术运算

基本算术运算符、优先级与结合性、数据类型转换、自增、自减运算2关系运算

3逻辑运算

4位运算

按位逻辑运算移位运算

位运算符的含义和使用。

简单的位运算。

5 指针运算

取地址运算、操作指针变量、移动指针、比较指针

6 其它运算

7 赋值运算

赋值运算符和赋值表达式、复合赋值运算

熟练运用各种运算符、掌握运算优先级和结合性。P237附录B

不同类型数据间的转换与运算。

表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

●基本运算、优先级

例题1:

下列程序的输出结果是()。

main( )

{ int m=12, n=34;

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

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

}

A)12353514 B)12353513 C)12343514 D)12343513

例题2:

下列程序的输出结果是()。

main( )

{ int a,b,d=25;

a= d/10%9;

b=a&&(-1);

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

A)6,1 B)2,1 C)6,0 D)2,0

例题3:

main( )

{ char s[ ]="159",*p;

p=s;

printf("%c",*p++);//先输出*p,再p++,即先去表达式值输出,再p++

printf("%c",*p++);

}

15

例题4:

int a=0,b=1;

if(a=b)

printf(“a equal to b”);

else

printf(“a not equal to b”);

注意区分“=”与“==”

●%操作的使用

?%操作只能针对整数(字符)

#include

main()

{

char *s="ABC";

do

{

printf("%d",*s%10);

s++;

}while(*s);

}

运行结果:567

?经常用于求解某个整数的尾数,将整数进行分离等。

●位运算举例

main( )

{ int c=35; printf("%d\n",c&c);}

运行结果:35

main( )

{ char x=040;printf("%d",x=x<<1);}

注意:040为八进制

运行结果:64

main( )

{ char a=3,b=6,c;

c=a^b<<2;

printf("%d",c);}

运行结果:27 左移<<优先级高于按位异或^

第4章程序控制结构

顺序程序设计

基本语句

1.控制语句、函数调用语句、表达式语句,空语句,复合语句。选择结构程序设计

1.用if语句实现选择结构。

2.条件运算表达式(a>b)?a:b

3.用switch语句实现多分支选择结构。

4.选择结构的嵌套。

●x≤y≤z的c语言表达式:(x<=y && y<=z)

●C语言中没有逻辑类型

逻辑运算和关系运算的结果为1或0;2 && 0

a=10; b=20; c=(a%b<1)||(a/b>1);

5>2>7>8的值

0参与逻辑运算表示假;

非0参与运算表示真;

int b=5;

if (!b) (等价于if (b==0)

b--;

●if () { 多条语句}

main( )

{ int a=3,b=4,c=5,t=99;

if(b

t=a;

a=c;c=t;

if(a

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

●else 总是与最近的if配对

if(a==1)

if(b!=2)

if(c==3) d=1;

else d=2;

else if ( )

●switch中的每个case,如不遇到break,则继续执行下一个case语句,直至遇到break

●switch 后面的表达式的含义

int a=3,b=5;

switch(a==1)

{case 1:a=b;break;

case 0:a++;

}

switch (a)

{case 1:a=b;break;

case 0:a++;

}

●短路特性:逻辑表达式求解时,有时并非所有的逻辑运算符都被执行,只是在必须执行下

一个逻辑运算符才能求出表达式的解时,才执行该运算符

下列程序的输出结果是()。

main( )

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

if(i++==1&&(++j==3||k++ ==3)) printf("%d %d %d\n",i,j,k);

}

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

●条件表达式的计算结合方向:自右向左

如a

若整型变量a、b、c、d 中的值依次为:1、4、3、2。则条件表达式a

循环控制

1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

循环用列表法分析,以确保不发生低级错误例题1:

main( )

{ char c1,c2;

for(c1='0',c2='9';c1

printf("%c%c",c1,c2);

printf("\n");

}

输出:0918273645

例题2:

main( )

{ int a=1,b;

for(b=1;b<=10;b+ +)

{ if(a>=8) break;

if(a%2= =1)

{a+=5; continue;}

a=3;

}

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

}

输出:4

例题3:

main()

{ int i,j,m=1;

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

{ for(j=3;j>0;j--)

{ if ((i*j)>3)

break;

m=i*j;

}

}

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

}

运行结果:m=1

第5章数组

数组的定义和引用

1.一维数组和二维数组的定义、初始化和数组元素的引用。

2.字符串与字符数组。

●数组的长度必须是一个常数!

int N=90;

int a[N];错误

下列叙述中错误的是()。

A)对于double 类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

●数组元素的引用

例题1

main( )

{ int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)

if(p[i]%2) j+=p[i];

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

}

A)42 B)45 C)56 D)60

++优先级高于<

例题2

有下列程序:

main( )

{ int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

{ for(j=0;j

printf("%4c",' ');

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

printf("%4d",num[i][j]);

printf("\n");

}

}

输出:

右上半三角。

1 2 3 4

6 7 8

11 12

16

例题3

main( )

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

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

for(i=0;i<3;i+ +) printf("%d",a[1][i]); }

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

例题4

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

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

s=s+a[b[i]];

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

11

●数组/字符数组/字符串的初始化

例题1:

能正确初始化的是:

A)char *s;s="Olympic";//把"Olympic"的地址赋给s

B)char s[7];s="Olympic";//s是数组名,是数组地址,不是变量

C)char *s;s={"Olympic"};

D)char s[7];s={"Olympic"};

例题2:

下列能正确定义一维数组的选项是()。

A)int a[5]={0,1,2,3,4,5}; B)char a[ ]={0,1,2,3,4,5};

C)char a={'A', 'B', 'C'}; D)int a[5]="0123";

●串长度/数组长度/串在内存中所占的字节数

char s1[10]="abcd!",*s2="\n123\\";//将串的首地址赋给s2,见p56

printf("%d %d %d %d %d\n",strlen(s1),strlen(s2),sizeof(s1),sizeof(s2),sizeof("\n123\\"));

5 5 10 4 6

下列程序的输出结果是()。

main( )

{ char a[7]="a0\0a0\ 0"; int i,j;

i=sizeof(a);

j=strlen(a);

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

}

A)2 2 B)7 6 C)7 2 D)6 2

已有定义:char a[ ]="xyz",b[ ]={'x', 'y', 'z'};,下列叙述中正确的是()。

A)数组a 和b 的长度相同B)a 数组长度小于b 数组长度

C)a 数组长度大于b 数组长度 D)上述说法都不对

●指针相关内容

1.地址与指针变量的概念,运算符*与&。

2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、

结构体的指针变量的定义。通过指针引用以上各类型数据。

3.用指针作函数参数。

5.指针数组,指向指针的指针。

●指针与数组

main( )

{

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

for(p=a;p

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

}

●指针与字符串

main( )

{

char *s="12347";

s+=2;

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

}

下列语句或语句组中,能正确进行字符串赋值的是()。

A)char *sp; sp="right!"; B)char s[10]; s="right!";

C)char s[10]; *s="right"; D)char *sp="right!";

char *sp; sp="right!";

有下列函数:

fun(char *a,char *b)// 1234 1231

{

while((*a! ='\0')&&(*b! = '\0')&&(*a= =*b))

{ a+ +; b+ +;}

return(*a-*b);

}

该函数的功能是()。

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

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

C)将b 所指字符串连接到a 所指字符串后面

D)比较a 和b 所指字符串的大小

●二维数组与指向数组的指针变量

main( ) //本题较难选做

{ int a[3][2]={0},(*ptr)[2],i,j;

//注意,ptr是一个指针,并非数组,只不过指向的内容是一//个长度为2的int数组

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

{ ptr=a+i;

scanf("%d",ptr);

}

{ for(j=0;j<2;j++)

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

printf("\n");

}

}

输入1 1

输出

1 0

1 0

0 0

#include

int fun(int (*s)[3],int n, int k)//本题较难选做

{

int m, i;

m=s[0][k];

for(i=1; i

if(s[i][k]>m)

m=s[i][k];

return m;

}

main()

{

int a[3][3]={{1,2,3},{11,12,13},{2l,22,23}};

printf("%d\n", fun(a,2,0));

}

11

●当两个指针p,s指向数组元素时,p在s之后,p-s指的是两个指针相差的元素个数. 如s指向a[1],p指向a[3],p-s为2。

main()

{ int a[8],*p,*s;

for(p=a;p-a<8;p++) scanf("%d",p);

for(p=a,s=a;p-a<8;p++) if(*p>*s) s=p;

printf(“index=%d\n”,s-a);

}

●通过指针访问数组元素

设有定义double a[10]={2,2,3,4},*s=a;,以下能够代表数组元素a[3]的是。

A)(*s)[3] //语法错误,*s为一个数

B)*(s+3)

C)*s[3] //s[3]即为a[3]

D)*s+3 //数组首元素的值加3

int x[8], *p=x;

A)*&x[8] //越界

B)*(x+3)

C)*(p+8) /越界

D)p+3

●指针数组

main()

{

char *a[]={“ef","gh","ijk"};

int i;

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

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

}

egi

第6章其它数据类型

1.用typedef说明一个新类型。

2.结构体和共用体类型数据的定义和成员的引用。

●struct结构体变量及分量的赋值方法

例1:

设有定义:

struct complex

{ int real,unreal;} data1={1,8},data2;

data2=data1;

data2=(2,6);错

data2.real=data1.real;

例2:

有以下定义和语句

struct workers

{ int num;

char name[20];

char c;

struct

{int day; int month; int year;} s;

};

struct workers w,*pw;

pw=&w;

能给w中year成员赋1980的语句是

*pw.year=1980;错

w.year=1980; 错

w.s.year=1980;

例3:

#include

struct st

{ int x, y;} data[2]={1,10,2,20};

main()

{ struct st *p=data;

printf("%d,", p->y); printf("%d\n",(++p)->x);

}

10,2

●union的定义和使用

例1

union dt

{ int a; char b; double c;}data;

下列叙述中错误的是()。

A)data 的每个成员起始地址都相同

B)变量data 所占内存字节数与成员c 所占字节数相等

C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000 D)data 可以作为函数的实参

●typedef的使用

例1:

设有如下说明:

typedef struct ST

{ long a; int b; char c[2]; } NEW;

则下列叙述中正确的是()。

A)以上的说明形式非法B)ST 是一个结构体类型

C)NEW 是一个结构体类型名 D)NEW 是一个结构体变量例2:

下列对结构体类型变量td 的定义中,错误的是()。

A)typedef struct aa B)struct aa

{ int n; { int n;

float m; float m;

}AA; }td;

AA td; struct aa td;

C)struct D)struct

{ int n; { int n;

float m; float m;

}aa; }td;

struct aa td;

第7章函数

1.库函数的正确调用。

2.函数的定义方法。

3.函数的类型和返回值。

4.形式参数与实在参数,参数值传递。

5.函数的正确调用,嵌套调用,递归调用。

6.局部变量和全局变量。

7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

●void函数不返回值

#define P 3

void F(int x)

{

return(P*x*x);

}

main( )

{ printf("%d\n",F(3+5)); }

编译出错

●C语言函数可以嵌套调用

例如:fun(fun(x)),fun(3*a,fun(b,c))

下列程序的输出结果是()。

int f1(int x,int y){return x>y?x:y;}

int f2(int x,int y){return x>y?y:x;}

main( )

{ int a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);

}

A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7

●函数参数单向传递

(1)普通变量,值传递

(2)指针作参数,但未对指针所指的内容作修改

函数参数的传递和返回

例题1:函数参数传递时的类型转换

#include

int f(int x,int y)

{return x+y; }

void main()

{

double a=7.5,b=2.5;

printf("%d",f(a,b));

9

例题2:

#include

void fun(int *a,int *b)

{

int *c;

c=a;a=b;b=c;

}

main()

{

int x=2,y=8,*p=&x,*q=&y;

fun(p,q);

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

fun(&x,&y);

printf("%d%d\n",*p,*q);

}

2828

例题3:

point(char*p){ p+=3; }

main( )

{ char b[4]={'a','b','c','d'},*p=b;

point(p); printf("%c\n",*p);

}

a

函数参数双向传递

(1)地址传送,包括数组,指针传递(2)结构体分量作为参数时,值传递

下列程序的输出结果是()。

void f(int *x, int *y)

{ int t;

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

}

main( )

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

p=a;q=&a[7];

while(p

{ f(p,q); p++; q--;}

for (i=0;i<8;i++) printf("%d,",a[i]); }

A)8,2,3,4,5,6,7,1 B)5,6,7,8,1,2,3,4 C)1,2,3,4,5,6,7,8 D)8,7,6,5,4,3,2,1

●函数与数组

#include

void fun(int a[], int n)

{ int i, t;

for(i=0; i

}

main()

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

fun(a,7);

for(i=3; i<9; i++) printf("%d", a[i]);

printf("\n");

321078

下列程序的输出结果是()。

#define N 20

fun(int a[ ],int n,int m)

{ int i,j;

for(i=m;i>n;i--)a[i+1]=a[i];

}

main( )

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

fun(a,2,8);

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

}A)10234 B)12344 C)12334 D)12234

●static 变量的特殊性

为保证一个变量在未赋初值的情况下初值为0,应选择的存储类别是static

#include

int fun()

{

static int x=2;

x=x*3;

return x;

}

main()

{

int i,s=1;

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

s=fun();

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

}

18

●指向函数的指针

程序中若有下列说明和定义语句:

char fun(char *);

main( )

{ char *s="one",a[5]={0},(*f1)( )=fun,ch;

}

下列选项中对fun()函数的正确调用语句是()。

A)(*fl)(a); B)*fl(*s); C)fun(&a); D)ch=*fl(s);

第8章内存使用

通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。

例:

有下列结构体说明和变量定义,如图所示,指针p、q、r 分别指向此链表中的三个连续结点。

struct node

{ int data;

struct node *next;

}*p,*q,*r;

现要将q 所指结点从链表中删除,同时要保持链表的连续,下列不能完成指定操作的

语句是()。

A)p->next=q->next; B)p-next=p->next->next;

C)p->next=r; D)p=q->next;

第9章文件

1.文件类型指针(FILE类型指针)。

2.文件的打开与关闭(fopen,fclose)。

3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek函数的应用)。

FILE *f;

f=fopen("filea.txt","w");

fprintf(f,"abc");

fclose(f);

下列与函数fseek(fp,0L,SEEK_SET)有相同作用的是()。

A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp)

有下列程序:

#include

void WriteStr(char *fn,char *str)

{ FILE *fp;

fp=fopen(fn,"w"); fputs(str,fp); fclose(fp);

}

main( )

{ WriteStr("t1.dat","start");

}

程序运行后,文件t1.dat 中的内容是()。

A)start B)end C)startend D)endrt

第10章预处理命令

1.宏定义和调用(不带参数的宏,带参数的宏)。

2.“文件包含”处理。

●概念辨析

下列叙述中正确的是()。

A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令

C)宏名必须用大写字母表示

D)宏替换不占用程序的运行时间

●当宏定义的宏体或参数未带括号时,宏展开的方法

#define MAX(x,y) (x)>(y)?(x):(y)

main()

{ int a=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

7

#define S(x) 4*x*x+1

main( )

{ int i=6, j=8;

printf("%d\n",S(i+j)); }

81

●#define不是C语句

其它习题

针对不同对象(数/字符串/数对)进行冒泡排序,简单选择排序#include

#include

void fun(int n, char *str[])

{

char *c;

int i,j;

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

for(j=0;j<=n-2-i;j++)

{

if(strcmp(str[j],str[j+1])>0)

}

main()

{

int i;

char *lang[]={"Australia","France","German","Africa"};

fun(4,lang);

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

printf("%s\n", lang[i]);

}

下列程序中,fun()函数的功能是求3 行4 列二维数组每行元素中的最大值。请填空。void fun(int, int, int(*)[4],int*);

main( )

{ int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i+)printf("%4d",b[i]);

printf("\n"); }

void fun(int m, int n, int ar[ ][4], int *br)

{ int i, j, x;

for(i=0;i

{ x=ar[i][0];

for(j=0;j

if(x

=x;

}

}

下列程序运行后的输出结果是。

#include

main( )

{ char ch[ ]="abc",x[3][4]; int i;

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

strcpy(x[i],ch);

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

printf("%s",&x[i][i]);

printf("\n");

}

下列程序运行后的输出结果是。

fun(int a)

{ int b=0; static int c=3;

b++; c++;

return(a+b+c);

}

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

printf("%d%d",i,fun(a));

printf("\n");

}

下列程序运行后的输出结果是。

stuct NODE

{ int k;

struct NODE *link;};

main( )

{ struct NODE m[5],*p=m,*q=m+4;

int i=0;

while(p! =q)

{ p->k=+ +i; p+ +;

q->k=i+ +; q--;

}

q->k=i;

for(i=0;i<5;i+ +) printf("%d",m[i].k);

printf("\n");

}

下列程序中huiwen()函数的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。

#include

char*huiwen(char *str)

{ char *p1,*p2; int i,t=0;

p1=str; p2= ;

for(i=0);i<=strlen(str)/2;i+ +)

if(*p1+ +! =*p2--){t=1;break;}

if( )

return("yes!");

else

return("no!");

}

main( )

{ char str[50];

printf("Input:"); scanf("%s",str);

printf("%s\n", );

}

大学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语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言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语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

C语言题库(1).docx

一. 选择题 (单项) 1. C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符 ——。 A必须为字母B必须为下划线 C必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符 2.下面 4个选项中,均是 C 语言关键字的选项是——。 Aauto enum includeBswitch typedef continue C signed union scanf D if struct type 3.下面 4个选项中,均是不合法的用户标识符的选项是——。 A A P_0 doBfloat la0_A C b- a goto int D_123 temp INT 4.在 C 语言中,int 、char 和 short 三种类型的数据在内存中所占用的字节数——。A由用户自己定义B均为 2 个字节 C是任意的D由所用机器的机器字长决定 5.下面 4 个选项中,均是合法浮点数的选项是——。 A+1e+15e-9.403e2B- .60 12e-4-8e5 C123e 1.2e-.4 +2e - 1D-e3 .8e-4 5.e -0 6.下面不正确的字符串常量是——。 AˊabcˊB〞 12ˊ12〞 C〞0 〞D〞〞 7.假设所有的变量均为整型,则表达式(a=2,b=5,b++, a+b)的值是——。 A7B8 C6D2 8.以下正确的叙述是——。 A在 C 语言中,每行只能写一条语句 B若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型 数 C在 C 程序中,无论整数还是实数,都能被准确无误的表示 D在 C 程序中, % 是只能用于整数运算的运算符 9.以下表达式值为 3 的是——。 A 16-13%10B2+3/2 C 14/3-2D(2+6)/(12- 9) 10.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ˊ aˊ +i*f 值的数据类型为——。 A int B float C double D 不确定 11.在 C 语言中, char 型数据在内存中的存储形式是——。 A 补码C 原码B反码 D AS CⅡ码 12.设有说明语句: char w;int x ;float y ;double z;w x z y 值的数据类型为 ——。 A float B char C int D double

C语言期中考试试题及答案-1

高级语言程序设计试题 答案在最后 一、单项选择题(本大题共20小题,每小题2分,共20分)在每小题列出得四个选项中只有一个 选项就是符合题目要求得,请将正确选项前得字母填在题后得括号内。 1、C语言程序编译时,程序中得注释部分就是( ) A、参加编译,并会出现在目标程序中 B、参加编译,但不会出现在目标程序中 C、不参加编译,但会出现在目标程序中 D、不参加编译,也不会出现在目标程序中 2、设int a=3;则表达式a<1&&--a>1得运算结果与a得值分别就是( ) A、0与2 B、0与3 C、1与2 D、1与3 3、与语句if(a>b)if(c>d)x=1;else x=2;等价得就是( ) A、if(a>b){if(c>d)x=1;else x=2;} B、if(a>b){if(c>d)x=1;}else x=2; C、if((a>b)&&(c>d))x=1;else x=2; D、if(a<=b)x=2;else if(c>d) x=1; 4、设char x='a';则printf("x=%c,y=%c\n",x,97);得输出就是( ) A、x=a,y=97 B、x=97,y=a C、x=97,y=97 D、x=a,y=a 5、执行下列程序 int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; main() {printf("%d\n”,a[1][0]+b[0][0]);} 后输出得结果就是( ) A、0 B、1 C、2 D、3 6、结构化程序设计所规定得三种基本控制结构就是( ) A) 输入、处理、输出B) 树形、网形、环形 C) 顺序、选择、循环D) 主程序、子程序、函数 7、完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行得步骤依次为( ) A、连接、编译 B、编译、连接 C、连接、运行 D、运行 8、下列各语句中,能够且仅输出整型变量a、b中最大值得就是( ) A、if(a>b) printf(″%d\n″,a);printf(″%d\n″,b); B、printf(″%d\n″,b);if(a>b) printf(″%d\n″,a); C、if(a>b) printf(″%d\n″,a);else printf(″%d\n″,b); D、if(a

2020最新C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新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语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

大一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语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 main( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是( )。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave);

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

C语言题库1

C语言题库 1.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写, 则文件方式字符串应是(D)。 A、"rb+" B、"ab++" C、"ab" D、"wb+" 2.设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是(C)。 A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a; 3.对结构体类型的变量的成员的访问,无论数据类型如何都可使用 的运算符是(B)。 A、& B、. C、* D、-> 4.下列关于指针定义的描述,错误的是(A)。 A、指针是一种变量,该变量用来存放某个变量的值 B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同 5.设有如下的程序段: char str[ ]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为(D ). A、不确定的值 B、'o'的地址 C、'o' D、'\0' 6.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。 A、&t[1] B、t[3] C、&t[3][2] D、t[2] 7.下列说法中正确的是(B ). A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数. D、在定义宏时,宏名与带参数的括弧之间可以加空格. 8.以下叙述中正确的是(C)。

C语言程序设计题库1

C语言题库试题 1.C 语言规定,函数返回值的类型是由()。 A.return 语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定 2.以下程序的输出结果是 #include f(int b[],int m,int n) { int i,s=0; for(i=m;i<n;i=i+2) s=s+b[i]; return s; } void main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A) 10 B) 18 C) 8 D) 15 3.有如下程序 #include int runc(int a,int b) { return(a+b);} void main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%\d\n”,r); } 该程序的输出的结果是 A) 12 B) 13 C) 14 D) 15 4.下列选项中,正确的赋值表达式为() A、a=b=c=9 B、a=b+9=c-9 C、a=b,a++,b=9 D、a=9-b=c+9 5.设x为int型变量,下列选项中能够判定x值为偶数的表达式是() A、 x%2=0 B、x/2=0 C、x%2==0 D、x/2==0 6.有以下程序段 int m=0,n=0; char c='a'; scanf("%d%c%d",﹠m,﹠c,﹠n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10"回车",则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0 7设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是______。

c语言考试题

高三11月份月考C语言考试题 一、选择题:(30分) 1.在每一个C程序中都必须包含一个名为()的函数. A.main B. MAIN C. name D. function 2.以下叙述正确的是(). A.C程序中注释部分可以出现在程序中任意合适的地方 B.花括号{和}只能作为函数体的定界符 C.构成C程序的基本单位是函数, 所有函数名都可以由用户命名 D.分号是C语句之间的分隔符, 不是语句的一部分 3.若有定义int a; 变量a占用内存的2个字节, 则a所能存储数据的最 小值是(). A.0 B. -32767 C. -32768 D. -65535 4.在下列4组八进制和十六进制数中, 全部正确的是(). A.123 089 0x23af 0xbd B. 0a21 056 0xabc 0x789 C.010 052 0xdfa 0xff14 D. 0x123 0283 0xabc 0x25f 5. 设有定义”int x=8,y,z;”执行”y=z=x++; x=y==z;”后,变量x的值是() A. 0 B. 1 C. 8 D. 9 6. 能正确表示关系33 and x<5 B. 33||X<5 D. x>3&&x<5 7. 下面表达式正确的是() A. a+b=5 B. 56=a11 C. 5.6+6.2%3.1 D. a=5,b=6,c=7 8. 已知a为整型变量,表达式a!=0真假情况不同的表达式是() A. a>0||a<0 B. a C. !a==0 D. !a 9. 下面程序的输出结果是() main() { int x=’\23’; printf(“%d\n”,--x); } A.19 B. 18 C. 23 D. 24 10. 以下运算符优先级别最低的是() A. ++ B. , C. ?: D. / 11. 下面程序如果在运行时输入18,18,那么b的值是() main() { int a,b; scanf(“%d,%o”,&a,&b); b+=a; printf(“%d”,b); } A. 36 B. 34 C. 输入错误,b的值不确定 D. 18 12. 有以下程序,执行后输出的结果是() main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d”,d); } A. 2 B. 无输出 C. 5 D. 有语法错误,编译不能通过 13. 执行下面程序段的输出结果是()。 int x=4, y=-55; if(x>0) if(y>0) printf(“AA”); else printf(“BB”); A. AA B. BB C. 无输出 D. 程序错误 14.以下程序的输出结果是()。 main() { if(2==3-1<=8!=4*3) printf(“true\n”); else printf(“false”); } A. true B. false C. T D. F 15.选择i正确的运行结果是() int i=10; switch(i) { case 9: i+=1; break; case 10: i+=1; break; case 11: i+=1; default: i+=1; } A.10 B. 11 C. 12 D. 13 二、填空题(30分) 1.设变量num和变量x的数据类型均为float, num的值为 2.5, 则执行 语句x=(int)num+3.2E-1;后, num的值为______,x为_______。 2.C语言规定: 在每一个字符串结尾加上个______,以便根据此判断是否 结束。 3.当a=6,x=6.8,b=4时,表达式x+a%7(int)x+8/3+b的值是 _____

趣味c语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

C语言题库第1章 概述

第一章概述 1.以下叙述中错误的是( ) A.一个C语言程序只能有一个主函数 B.C语言编写的每个函数都可以进行独立的编译并执行 C.C语言编写的函数都可以作为一个独立的源程序文件 D.C语言编写的函数源程序,其文件名后缀可以是C 2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( ) A.C语言程序仅可以编译执行 B.C语言程序仅可以解释执行 C.以上说法都不对 D.C语言程序既可以编译执行又可以解释执行 3.C语言规定:在一个源程序中,main的位置( ) A.可以任意 B.必须在最后 C.必须在最开始 D.必须在系统调用的库函数后面 4.一个C语言程序是由( ) A.若干过程组成 B.若干子程序组成 C.函数组成 D.一个主程序和若干子程序组成 5.以下关于结构化程序设计的叙述中正确的是( ) A.一个结构化程序必须同时由顺序、分支、循环三种结构组成 B.在C语言中,程序的模块化是利用函数实现的 C.由三种基本结构构成的程序只能解决小规模的问题 D.结构化程序使用goto语句会很便捷 6.以下叙述正确的是( ) A.在C程序中,main函数必须位于程序的最前面 B.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 C.C语言本身没有输入输出语句 D.程序的每行中只能写一条语句 7.以下叙述中错误的是( ) A.C语言编写的每个函数都可以进行独立的编译并执行 B.C语言编写的函数源程序,其文件名后缀可以是C C.一个C语言程序只能有一个主函数

D.C语言编写的函数都可以作为一个独立的源程序文件 8.以下叙述正确的是( ) A.C程序的书写格式是固定的,每行只能写一条语句 B.C程序中注释部分可以单独占一行 C.构成C程序的基本单位是函数,所有函数名都可以由用户命名 D.在对C语言程序进行编译时,可以发现注释行中的拼写错误 9.以下叙述正确的是( ) A.C语言程序是由过程和函数组成的 B.C语言函数不可以单独编译 C.C语言中除了main函数,其他函数不可作为单独文件形式存在 D.C语言函数可以嵌套调用,例如:fun(fun(x)) 10.一个C程序的执行是从( ) A.本程序文件的第一个函数开始,到本程序main函数结束 B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序的main函数开始,到main函数结束 11.以下叙述不正确的是( ) A.在C程序中,注释说明只能位于一条语句的后面 B.C程序的基本组成单位是函数 C.一个C源程序可由一个或多个函数组成 D.一个C源程序必须包含一个main函数

数据结构c语言版期末考试复习试题[1]

《数据结构与算法》复习题 一、选择题。 1.在数据结构中,从逻辑上可以把数据结构分为 C 。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。 A.数据的处理方法 B.数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何 B.结点个数的多少 C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 D 。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是A 。 (1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是 O(n2) 。 s =0; ( I =0; i

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

相关主题