,”a[I]);printf(“\n”);}
A.0 2 4 6 8 10 12 14 16 18
B.0 1 2 3 4
0 1 2 3 4 0 2 4 6 8 10 12 14 16 18
C.0 1 2 3 4 5 6 7 8 9
D. 0 2 4 6 8 10 12 14 16 18
0 1 2 3 4 0 2 4 6 8 10 12 14 16 18
19.以下程序的正确运行结果是()
void num()
{extem int x,y; int a=15;b=10;
x=a-b; y=a+b;}
int x,y;
main()
{int a=7,b=5;
x=a+b; y=a-b; num(); printf(“%d,%d”,x,y);}
A.12,2 B,不正确 C,5,25 D.1,12
20.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是()
A.auto
B. static
C. extern
D. register
21.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()
A.extern
B.register
C.auto
D.static
22.以下程序的正确运行结果是()
main()
{int a=2,I;
for(I=0;I<3;I++) printf(“%4d”,f(a));}
f(int a)
{int b=0; static int c=3;
b++; c++; return(a+b+c);}
A.7 7 7
B.7 10 13
C.7 9 11
D.7 8 9
23.以下程序的正确运行结果是( )
#include
main()
{int k=4,m=1,p;
p=func(k,m); printf(“%d”,p);
p=func(k,m); printf(“%d\n”,p);}
func(int a,int b)
{static int m=0,I=2;
I+=m+1; m=I+a+b; return(m);}
A.8,17
B.8,16
C.8,20
D.8,8
填空题:
24.C语言规定,可执行程序的开始执行点是_____________
25.在C语言中,一个函数一般由两个部分组成,它们是_____________和_____________
26.下面add函数的功能是求两面个参数的和,并将和值返回调用函数。函数中错误的部分是_____________,改正后应是_____________
void add(float a,float b)
{float c; c=a+b; return c;}
27.以下程式序的运行结果是_____________
main()
{int I=2,x=5,j=7;
fun(j,6);
printf(“I=%d;j=%d;x=%d\n”,I,j,x);}
fun(int I,int j)
{int x=7; printf(“I=%d;j=%d;x=%d\n”,I,j,x);} 28.以下程序的运行结果是_____________
main()
{increment();
increment();
increment();}
increment()
{int x=0;x+=1; printf(“%d”,x);}
29.以下程序的运行结果是_____________
main()
{int a=1,b=2,c;
c=max(a,b);printf(“max is %d\n”,c);}
max(int x,int y)
{int z; z=(x>y)?x;y; return(z);}
30.若输入一个整数不清10,以下程序运行结果是_____________ main()
{int a,e[10],c,I=0;
printf(“输入一个整数: \n”);
scanf(“%d”,&a);
while(a!=0)
{c=sub(a); =a/2; e[I]=c; I++;}
for(;I>0;I--) printf(“%d”,e[I-1]);}
sub(int a)
{int c;
c=a%2; return c;}
31.以下程序的运行结果是_____________
main()
{int x=2,y=3,z=0;
printf(“(1)x=%d y=%d z=%d\n”,x,y,z);
add(x,y,z);
printf(“(3)x=%d y=%d z=%d\n”,x,y,z);}
add(int x,int y, int z)
{z=x+y; x=x*x; y=y*y;
printf(“(2)x=%d y=%d z=%d\n”,x,y,z);}
32.下面程序的运行结果是_____________
main()
{int I=5;
printf(“%d\n”,sub(I));}
sub(int n)
{int a;
if(n==1) return 1;
a=n+sub(n-1);
return(a);}
33.以下程序运行结果是_____________
main()
{int a=1,b=2,c=3;
++a; c+=++b;
{int b=4,c;
c=b*3; a+=c; prin tf(“first:%d,%d,%d\n”,a,b,c); a+=c;
printf(“second:%d,%d,%d\n”,a,b,c);}
printf(“third:%d,%d,%d\n”,a,b,c);}
34.以下程序的运行结果是_____________
int k=1;
main()
{int I=4;
fun(I); printf(“(1)%d,%d\n”,I,K);}
fun(int m)
{m+=k; k+=m;
{char k=’B’;
printf(“(2)%d\n”,k-‘A’);}
printf(“(3)%d,%d\n”,m,k);}
35.以下程序的运行结果是_____________
int x1=30,x2=40;
main()
{int x3=10,x4=20;
sub(x3,x4); sub(x2,x1);
printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);}
sub(int x,int y)
{x1=x; x=y; y=x1;}
36.以下程序的运行结果是_____________
int I=0;
main()
{int I=5;
reset(I/2); printf(“I=%d\n”,I);
reset(I=I/2); printf(“I=%d\n”,I);
reset(I/2);printf(“I=%dn\”,I);
workover(I); printf(“I=%d\n”,I);}
workover(int I)
{I=(I%I)*((I**)/(2*I)+4);
printf(“I=%d\n”,I);
return(i);}
reset(int I)
{I=I<=2?5:0; return(I);}
37.以下程序的运行结果是_____________
int a=5; int b=7;
main()
{int a=4,b=5,c;
c=plus(a,b);
printf(“A+B=%d\n”,c);}
plus(int x,int y)
{int z;
z=x+y; return(z);}
38.以下程序的运行结果是_____________
int a=3,b=5;
max(a,b)
{int c; c=a>b?a:b; return(c);}
main()
{int a=8; printf(“%d”,max(a,b));}
39.以下程序的运行结果是_____________
int x;
main()
{x=5; cude(); printf(“%d\n”,x);}
cude()
{x=x*x*x;}
40.以下程序的运行结果是_____________
main()
{incx(); incy(); incx(); incy(); incx(); incy();} incx()
{int x=0; printf(“x=%d\t”,++x);}
incy()
{static int y=0; printf(“\ny=%d\n”,++y);}
41.以下程序的运行结果是_____________
main()
{increment(); increment(); increment();} increment()
{static int x=0;
x+=1; printf(“%d”,x);}
42.以下程序的运行结果是_____________
int n=1;
main()
{static int x=5; int y;
y=n; printf(“MAIN:x=%2d y=%2d n=%2d\n”,x,y,n); func(); pri ntf(“MAIN:x=%2d y=%2d n=%2d\n”,x,y,n);
func();}
func()
{static int x=4; int y=10;
x=x+2; n=n+10; y=y+n
printf(“FUNC:x=%2d y=%2d n=%2d\n”,x,y,n);}
43.以下程序的运行结果是_____________
int fac(int n)
{static int f=1;
f=f*n;
return(f);}
main()
{int I;
for(I=1;I<=5;I++) printf(“%d!=%d\n”,I,fac(I));}编译预处理练习题
1.以下不正确的说法是()A.预自理命令行都必须以“#”开始。B.在程序中凡是以#号开始的语句行都是预处理命令
C.C程序在执行过程中对预处理命令行进行处理。
D.以下是正确的宏定义:#define IBM_PC
2.以下正确的是( )
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占用编译时间
D.在以下定义中C R是称为”宏名”的标识符#define C R 045
3.以下程序运行结果是:()
#define ADD(x) x+x
main()
{int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf(“sum=%d”,sum);}
A.sum=9
B.sum=10
C.sum=12 Dsum=18
4.以下程序的运行结果是()
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{int I=10,j=15,k;
k=10*MIN(i,j); prinft(“%d\n”,k);}
A.10
B.15
C.100
D.150
5.在宏定义#define PI 3.14159中,用宏名PI代替一个()
A.常量 B.单精度数 C.双精度数 D.字符串
6.以下有关宏替换的叙述不正确的是()
A.宏替换不占用运行时间。
B.宏名无类型
C. 宏替换只是字符替换。
D.宏名必须用大写字母表示7.C语言的编译系统对宏命令的处理是()
A.在程序运行时进行的。 B.在程序连接时进行的
C.和C程序中的其它语句同时进行编译的
D.在对源程序中其它份正式编译之前进行的
8.若有以下宏定义:
#define N2
#define Y(n)((N+1)*n)
则执行语句Z=2*(N+Y(5));后结果是()
A.语句有误 B.Z=34 C.Z=70 D.Z无定值
9.若有宏定义:#define MOD(x,y)x%y
则执行以下语句后的输出为()
int z,a=15,b=100; z=MOD(b,a); printf(“%d\n”,z++);
A.11
B.10
C.6
D.宏定义不合法
10.以下程序的运行结果是()
#defineMAX(A,B. (A.>(B.?(A.:(B.
#define PRINT(Y) printf(Y=%d\t”,Y)
main()
{int a=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d); print(t);}
A.y=3
B.存在语法错误
C.Y=7
D.Y=0
11.以下程序的运行结果是()
#defineMUL(x,y)(x)*y
main()
{int a=3,b=4,c;
c=MUL(a++,b++); prinft(“%d\n”,c);}
A,12 B.15 C.20 D.16
12.对以下程序段:
#defineA3
#defineB(a)((A+1)*a)
x=3*(A+B(7));正确的判断是()
A.程序错误,不许嵌套宏定义 B.x=93
C.X=21 D.程序错误,宏定义不许有参数
13.以下程序中,第一个输出值是(),第二个输出值是()
值是()
#define M3
#define N(M+1)
#define NNN*N/2
main()
{prinft(“%d\n”,NN);printf(“%d”,5*NN);}
A.3
B.4
C.6
D.8
A.17
B.18
C.30
D.40
14.以下程序的输出结果是()
#definePT 5.5
#defineS(x)PT*x*x
main()
{int a=1,b=2;printf(“%4.1f\n”,S(a+b));}
A.12.0
B.9.5
C.12.5
D.33.5
15.在“文件包含”预处理语句的使用形式中,当#inlcude后面的文件名用“”(双引号)括起时,寻找被包含文件的方式是()
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索。
C.仅仅搜索源程序所在目录。
D.仅仅搜索当前目录
16.请读程序:
#define LETTER 0
mian()
{char str [20]=”C Language”,c;
INT I=0;
While((c=str[I]!=’\0’)
[I++;
#if LETTER
if (c>=’a’&&c<=’z’ c=c-32;
#else
if (c>=’A’&&c<=’Z’) c=c+32;
#endif
printf(“%c”,c);}}
以上程序的运行结果是()
A.C Language B.c language C.CLANGUAGE D.Clanguage
17.以下正确的描述是()
A.C语言的预处理功能是指完成宏替换和包含文件的调用。
B.预处理指令只能位于C源程序的首部
C.凡是C源程序中行首以“#”标控制行都是预处理指令。
D.C语言的编译预处理就是对源程序进行初步的语法检查。
指针练习题
1.以下程序的运行结果是( )
sub(int x, int y, int *z)
{*z=y-x;}
main()
{int a,b,c;
Sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);
Printf(“%4b,%4d,%4d\n”,a,b,c);}
A.5,2,3
B.-5,-12,-7
C.-5,-12,-17
D.5,-2,-7
2.执行以下程序后,a的值为( )b的值为( )
main()
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf(“a=%d\n”,a); printf(“b=%d\n”,b);}
A.-1
B.1
C.0
D.4 A.5 B.6 C.7 D.10 3.下面程序应能对两个整型变量的值进行交换以下正确的说法是( )
main()
{int a=10,b=20;
printf(“(1)a=%d,b=%d\n”,a,b);
swap(&a,&b);
printf(“(2)a=%d,b=%d\n”a,b);}
swap(int p,int q)
{int t; t=p; p=q; q=t;}
A.程序完全正确
B.程序有错,只要将语句swap(&a,*b);中的参数
改成a,b即可
C.程序有错,只要将swap()函数中的形参p和q 以及t 均定义为指针(执行语句都有不变)即可
D.以下说法都不对
4.有四组对指针变量进行操作的语句,以下判断正确的选项是( )
A. int p,q; q=p; int a,*p,*q; p=q=&a;
B. int a,*p,*q; q=&a; p=*q; int a=20,*p; p=a;
C. int a=b=0,*p; P&a; b=*p;
int a=20,*p,*q=&a; p=q;
D. int a=20,*p,*q+&a; p=q; int p,*q;
A.正确(1) 不正确(2)(3)(4)
B.正确(1)(4) 不正确(2)(3)
C.正确(3) 不正确(1)(2)(4)
D.以上结论都不正确
5.以下程序中调用scanf 函数给变量a输入值
的方法是错误的,其错误原因是( )
main()
{int*p, q, a, b;,};
p=&a;
printf(“input a:”);
scanf(“%d”,*p);
……}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
6 以下程序有错误,错误原因是( )
main()
{int*p,I; char*q,ch;
p=&I; q=&ch; *p=40; *p=*q;……}
A. p和q的类型不一致,不能执行*p+*q语句
B.*p中存放的是地址值,因此不能执行*p=40语句。
C. q没有指向具体的存储单元,所以*q没有实际意义。
D. q虽然指向具体的存储单元,但该单元中没有确
定的值,所以不能执行*p=*q;语句
7.已有定义int k=2; int*ptr1,*ptr2;且ptr1和ptr2均已
main() 指向变量k,下面不能正确执行赋值语句的是( ) A. k=*ptr1+*ptr2; B.ptr2=k;
C.ptr1=ptr2;
D. k=*ptr1*(*ptr2);
8.变量的指针,其含义是指该变量的( )
A.值
B.地址
C.名
D.一个标志
9.若有语句int*point,a=4和point=&a;下面均代表地址的一组选项是( )
A. a,point,*&a
B.&*a,&a,*point
C. &point,&point,&a
D.&a,&*point,point
10.若有说明:int *p,m=5,n;以下正确的程序段是( )
A. p=&n;scanf(“%d”,&p);
B. p=&n; scanf(“%d”,*p);
C. scanf(“%d”,&n);*p=n;
D. p=&n; *p=m;
11.若有说明:int p1,p2,m=5,n;以下均是正确的赋值语句的选项是( )
A. p1=&m; P2=&p1;
B.p1=&m; p2=&n; *p1=*p2
C. p1=&m; p2=p1;Dp1=&m; p2=p1
12已有变量定义和函数调用语句: int a=25;
print_value(&a); 下面函数的正确输出结果是( ) void print_value(int *x)
{printf(“%d\n”,++*x);}
A. 23
B. 24
C. 25
D. 26
13.下面判断正确的是( )
A. char*a=”china”;等价于char *a; *a=”china”;
B. char str[10]={“china”};等价于char str[10];
C. char*s=”china”;等价于char str[10]
D. char c[4]=”abc”,d[4]=”abc”
等价于char c[4]=b[4]=”abc”;
14.设char*s=”\ta\017bc”;则指针变量s指向的字符串所占的字节数是 ( )
A.9
B.5
C.6
D.7
15.下面能正确进行字符串赋值的操作的是( )
A. char s[5]={“ABCDE”};
B. char s[5]={‘A’,’B’,’C’,’D’,’E’,};
C. char*s; s=”ABCDE”;
D.chars;scanf(“%s”,s);
16.下面程序段的运行结果是( )
char*s=”abcde”; s+=2; printf(“%d”,s);
A.cde
B.字符’c’
C.字符’c’的地址
D.无确定结果
17.设有以下程序段:char s[]=”china”; char*p; p=s; 则下列叙述正确的是( )
A.s和p完全相同D.*p与s[0]相等
B.数组s中的内容和指针变量p中的内容相等
C.s数组长度和p所指向的字符串长度相等
18下面程序段的运行结果是( )
char*format=”%s, a=%d, b=%d\n”;
int a=1,b=10; a+=b;
printf(“format,” a+=b,”, a, b);
A. for,”a+=”,ab
B.format,”a+=b”
C.a+=b,a=11,b=10
D.以下结果都不对
19.以下正确的程序段是( )
A.char str[20]; scanf(“%s”,&str);
B.char*p; scanf(“%s”,p);
C.char str[20];Scanf(“%s”,&str[2]);
D.char str[20], *p=str;
scanf(“%s”,p[2]);
20.下面程序段的运行结果是( )
char str[]=”ABC”, *p=str;
printf(“%d\n”,*(9+3));
A. 67
B. 0
C.字符’C’的地址
D.字符’C’
21.下面程序段运行结果是( )
char a[]=”language”,*p;
p=a;
while(*p!=’u’) {pirntf(“%c”,*p-32);p++;}
A. LANGUAGE
B. language
C. LANG
D. language
22.下面说明书不正确的是( )
A.char a[10]=”china”;
B.char a[10],*p=a;p=”china”;
C.char*a;a=”china”;
D.char a[10],*p; p=a=”china”;
23. 若有说明语句
char a[]=”It is mine”; char*p=”It is mine”; 则以下不正确的叙述是( ) A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
24.若已定义char s[10];则在下面表达式中不表示s[1]的地址是( )
A.s+1
B.s++
C.&s[0]+1
D. &s[1]
25 下面程序段的运行结果是( )
char s[6]; s=”abcd” printf(“\”%s\”\n”,s); A”abcd” B”abcd “ C\”abcd\” D编译出错
26当运行以下程序时,从键盘输入Happy! ,则下面的程序运行结果是()
#include
#include
main()
{char str [10],*p=str;
gest(p); printf(“%d\n”,stre(p));}
stre(char str[])
{int num=0;
while(*(str+num)!=’0’)
num++;
return(num);}
A.7
B.6
C.5
D.10
27.下面程序的运行结果是( )
#include
main()
{static char a[ ]=“Language”,b[ ]=”programe”; char p1, p2; int k;
p1=a; p2=b; printf(" %c”,*(p1+k));}
A. gae
B. ga
C. Language
D.有语法错误
28.下面程序运行结果( )
#include
main()
{int a=28,b;
char s[10],*p;
p=s;
do{b=a%16;
if(b<10) *p=b+48;
else *pb+55;
p++;
a=a/5;}while(a>0);
*p=’\0’;
puts(s);}
A.10
B. C2
C.C51
D.\0
29.下面程序的运行结果是( )
#include
void delch(char *s)
{int I,j;
char *a;
a=s;
for(I=0,j=0;a[I]!=’\0’;I++)
if(a[I]>=’0’&&a[I]<=’9’){s[j]=a[I];j++;}
s[j]=’\0’;}
main()
{char*item=”a34bc”;
delch(item);
printf("\n%s",item);}
A.abc
B.34 c.a34 D.a34bc
30.下面程序运行结果是( )
#include
#include
main()
{char*s1=”AbDeG”; char*s2”AbdEg”;
s1+=2; s2+=2;
printf(“%d\n”,strcmp(sl,s2));}
A.正数
B.负数
C.零
D.不确定的值
31.下面的程序的运行结果是( )
#include
#include
fun(char*s)
{char a[7]; s=a; strcpy(a,”look”);}
main()
{char *p; fun(p); puts(p);}
A.look□□□
B.look
C.look□□
D.不确定的值
32.下面的程序的运行结果是( )
#include
main()
{char *p,s[ ]=”ABCDEFG”;
for(p=s; *p!=’\0’;)
{printf(“%s\n”,p);
p++;
else break;k}}
A.ABCDEFG ABCDE ABC A
B.ABCDEFG BCDEF CDE D
C.A C E G
D.ABCDEFG CDEFG EFG G
33.下面和序的运行结果是( )
#include
#incude
main()
{char* p1,*p2,str[50]=”abc”;
p1=”abc”; p2=”abc”;
strcpy(str+1,strcat(p1,p2));
printf(“%s\n”,str);}
A.abcabcabc
B.bcabcabc
C.aabcabc
D.cabcabc
34.下面程序的运行结果是( )
#include
main()
{char str[]=”cdalb”;
abc(str); puts(str);}
abc(char*p)
{int I,j;
for(I=0,j=0;*(p+I)!=’\0’;I++)
if(*(p+I)>=’d’){*(p+j)=*(p+I); j++} C.p=b[I]; *(p+j)=’\0’;}
A.dalb
B.cd
C.dl
D.c
35.若有以下定义,则对a数组元素的正确引用是
inta[5],*p=a;
A.*&a[5]
B.a+2
C.*(p+5)
D.*(a+2) 正确操作是()36.若有定义:int a[2][3];则对a数组的第I行,第j 列元素值的正确引用是()
A.*(*a+I)+j)
B.(a+I)[j] C*(a+I+j) D.*(a+I)+j
37.若有以下定义和语句,则对a数组的地址的正确引用为()
inta[2][3],(*P)[3]; p=a;
A.*(p+2)
B.p[2]
C.p[1]+1
D.(p+1)+2
38.若有以下定义和语句,则对a数组元素的正确引用为()
int a[2][3],(*p)[3]; p=a;
A.(p+1)[0]
B.*(*(p+2)+1)
C.*(p[1]+1)
D.p[1]+2
39.若有定义:int a[5];则a数组中首元素日地址可以表示为()
A.&a
B.a+1
C.a
D.&a[1]
40.若有定义:int(*p)[4];则标识符p( )
A.是一个指向整形变量的指针
B.是一个指针数组名
C.是一个指针,它指向一个含有四个整形元素的一维数组
D.定义不合法
41.若有以下定义和赋值语句,则以s数组的第I行第j 列元素地址的合法引用为()
int s[2][3]={0},(*p)[3]; p=s;
A.*(*p+I)+j)
B.*(p[I]+j)
C.(p+I)+j
D.(*(p+I))[j]
42.以下与int*q[5];等价的定义语句是()
A.intq[5];
B.int*q;
C.int*(q[5]);
D.int(*q)[5]; 43.设有以下程序段:
char
str[4][10]={“frist”,”second”,”third”,”for urth”},*strp[4];
int n;
for(n=0;n<4;n++) strp[n]=str[n];
若k为int型变量且0<=k<4,则对字符串的不正确引用是( )
A. strp
B. str[k]
C.strp[k]
D.*strp
44若有以下定义,则*(p+5)表示( )
int a[10],*p=a;
A.元素a[5]的地址
B.元素a[5]的值
C.元素a[6]的地址
D.元素a[6]的值
45.若有定义:int*p[4]:则标识符p( )
A.是一个指向整形变量的指针
B.是一个指针数组名
C,是一个指针,它指向一个含有四个整形元素的一维数组
D.说明不合法
46.以下正确的说明语句是( )
A.int*b[]={1,3,5,7,9};
B.int
a[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};
C.int a[]{1,3,5,7,9};
D.int a[3][4],(*num)[4];num[1]=&a[1][3];
47.若有以下定义,且0<=I<4,则不正确的赋值语句是( ) int b[4][6],*p,*q[4];
A.q[I]=b[I];
B.p=b;
C.p=b[I];
D.q[I]=&b[0][0];
48.若有以下定义,则p+5表示( )
int a[10],*p=a;
A.元素a[5]的地址
B.元素a[5]的值
C.元素a[6]的地址
D.元素a[6]的值
49.以下选项中,对指针变量p的不正确操作是()
A.inta[5],*p;p=&a; C.inta[5];int*p=a=1000
B.int a[5],*P;p=a; D.inta[5]; int*p1,*p2=a *p1=*p2;
50.若有以下定义,且0<=I<5,则对a数组元素的非法引用是()
int a[5],*p=a;
A.a[1]
B.*(a+1)
C.*(p+1)
D.*(&a+I)
51.若有以下定义,则数值不为3的表达式是()
int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;
A.x[3]
B.p1=x+3,*p1++
C.p1=x+2,*(p1++)
D.p1=x+2,*++p1
52.阅读以下程序:
main()
{int a[10]={2,4,6,8,10,12,14,16,18,20},*p;
p=a;
printf(“%x\n”,p);
printf(“%x\n”,p+9);}
若第一个printf语句输出的是ffca,则第二个printf语句输出的是()
A.ffdd
B.ffdc
C.ffde
D.ffcd
53.设有以下定义:
char *cc[2]={“1234”,”5678”};
则正确的叙述是()
https://www.wendangku.net/doc/4010253948.html,数组的两个元素中各自存放了字符串“1234”和“5678”的首地址
https://www.wendangku.net/doc/4010253948.html,数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
https://www.wendangku.net/doc/4010253948.html,是指针变量,它指向含有两个数组元素的字符型一维数组
https://www.wendangku.net/doc/4010253948.html,数组元素的值分别是“1234”和“5678”
54、若有以下定义
int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}
int(*p)[3]=x;
则能够正确表示数组元素x[1][2]的表达式是()
A *((*p+1)[2])
B (*p+1)+2
C *(*p+5)
D *(*p+1)+2)
55 下面程序的运行结果是()
main()
{int x[5]={2,4,6,8,10},*p,**pp;
p=x;
pp=&p;
printf(“%d”,*(p+1));
print f(“%3d\n,”**pp);}
A 4 4
B 2 4
C 2 2 D, 4 6
56,若有说明:
char
*language[]={“fortran,””basic,””pascal,”ja va,””c”};则表达式language[1]>*language[3]比较的是()
A 字符f和字符p
B 字符窜basic和字符窜java
C 字符b和字符j
D 字符窜fortran和字符窜pascal
57.若有说明
char
language[]={“fortran,””basic,”,”pascal,””java,””c”}则language[2]的值是
A一个字符B一个地址C一个字符窜D一个不定直
58. 若有说明
char
*languiage
[]={“fortran,””basic,”pascal,”java,”c”}则以下不正确的是()
https://www.wendangku.net/doc/4010253948.html,nguage+2表示字符窜”pascal”的首地址
https://www.wendangku.net/doc/4010253948.html,nguage[2]的值是字母p
https://www.wendangku.net/doc/4010253948.html,nguage是一个字符行指针数组,它包含5个元素每个元素都是一个指向字符窜变量的指针
https://www.wendangku.net/doc/4010253948.html,nguage是一个字符型指针数组,它包含5个元素其初直分别是:fortran,basic,pascal,java,c,
59.语句int(“ptr)9()的含义是()
A.ptr是指一维数组的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr 是一个函数名,该函数的反回值是指向int型数据的指针
60.若有函数max(a,b)并且已使函数指针变量p指向max,当调用该函数时正确的调用方法是()
A.(*p)max(,b)
B.pmax(a,b)
C.(p)(a,b)
D.*p(a,b)
61.已有函数max(a,b),为了让函数指针变量p指向函数max正确的赋值方法是()
A.p=max
B.*p=max
C.p=max(a,b)
D.*p=max(a,b)
62.已有定义int(*p)( )指针p可以()
A.代表函数的返回值
B.指向函数的入口地址
C.表示函数的类型
D.表示函数返回值的类型
63.若有以下说明和语句:
char *language[]={“fortran,”basic,”pascal,”java,c ,}
char**p;
q=language+2
则语句printf(“%o/n,”*p);( )
A.输出的是language[2]元素的地址
B.输出的是字符窜pascal
C.输出的是language[2]元素的值,它是字符窜pascal 的首地址
D.格式说明不正确,无法得到确定的输出
64.若要对a进行++运算,则a应具有下面说明()
A.int a[3][2]
B.char *a[]{“12”,ab}
C.char(*a)[3]
D.int b[10],*a=b;
结构体与共用体练习题
1.已知学生记录描述为
struct student
{int no;
char name[20];
char sex;
struct
{int year;
int month;
int day;}birth;};
struct student s;
设变量s中的“生日”应该是“1984年11月11日”,下
列对“生日”的正确赋值方式是( )
A. year=1984;
B.birth.year=1984;
month=11; birth.month=11;
day=11; birth.day=11;
C.s.year=1984;
D.s.birth.year=1984;
s.month=11; s.birth.month=11;
s.day=11; s.birth.day=11;
2.当说明一个结构体变量时系统分配给它的内存是( )
A.各成员所需内存的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
3.设有以下说明语句
struct stu
{int a;float b;}stutype;则以下叙述不正确的是( )
A. struct 是结构体类型的关键字
B. struct stu 是用户定义的结构体类型
C. stutype 是用户定义的结构体类型名
D. a 和 b 都是结构体成员名
4.C语言结构体类型变量在程序执行期间( )
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中
5.在16位机动IBM-PC机上使用C语言,若有如下定义:struct data
{int I; char ch; double f;}b;
则结构体变量b占用内存的字节数是( )
A.1
B.2
C.8
D.11
6.以下程序的运行结果是( )
main()
{struct date
《C语言程序设计》第1章 C语言概述练习题答案
第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。 A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性 二、填空题 1.汇编语言属于面向( 面向机器的 )语言,高级语言属于(面向问题的)语言。 2.用高级语言编写的程序称为(源)程序,它可以通过解释程序翻译一句执行一句的方式 执行,也可以通过编译程序一次翻译产生(目标)程序,然后执行。
函数练习题(C语言)带答案
C语言函数练习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B )可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)m ain可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)m ain函数必须出现在所有函数之后 D)m ain函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D )形参可以是常量、变量或表达式 7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参
第一章C语言概述习题附答案
第一章C语言概述 一、单选题 1. C语言程序的执行,总是起始于()。C A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。本题正确答案为C。 2、C语言程序的基本单位是()。C A)程序行B)语句C)函数D)字符 3、C语言中规定:在一个源程序中main函数的位置()。C A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 4、以下述叙正确的是()。C A.在C程序中,main函数可有可无 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 5、能将高级语言编写的源程序转换为目标程序的是()。C A.链接程序 B.网络程序 C.编译程序 D.WORD字处理程序 6、下列说法中正确的是()。C A)C程序书写时,不区分大小写字母 B)C程序书写时,一行只能写一个语句 C)C程序书写时,一个语句可分成几行书写 D)C程序书写时每行必须有行号 分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为C。 7、下面对C语言特点,不正确描述的是()。C A)C语言兼有高级语言和低级语言的双重特点,执行效率高 B)C语言既可以用来编写应用程序,又可以用来编写系统软件 C)C语言的可移植性较差 D)C语言是一种结构式模块化程序设计语言 分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为C。 8、C语言源程序的最小单位是()。D A)程序行B)语句C)函数D)字符 分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。本题正确答案为D。 9.计算机内部运算使用的数是()。C A)十进制数B)十六进制数C)二进制数D)八进制数
C语言基础练习100题(含答案)
C语言基础练习100题(含答案) 欧阳学文 雷柳青编排 1、下面程序的输出是________ #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、在下列选项中,不正确的赋值语句是________. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是__________. A) '\t' B) "A" C) 65 D) A 4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码 5、设int a=12,则执行完语句a+=a=a*a 后,a的值是________ A) 552 B) 264 C) 144 D) 264 6、执行下面程序中的输出语句后,输出结果是______. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 7、下面程序的输出是__________. #include void main() {int x=023; printf("%d\n",x); } A) 17 B) 18 C) 23 D) 24 8、下面程序的输出是___________. #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) 不确定的值 9、以下程序的输出结果是________. #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 10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y)); 上面程序片段的输出结果是_______.
第1章C语言概述
第1章C语言概述 C语言是国际上广泛流行的、很有发展前途的高级程序设计语言,它既可以用来编写系统软件,又可以用来编写应用软件。C语言也是大学生学习程序设计选用最多的语言。本章主要介绍C语言的发展历史、C语言的特点、C程序的结构和C程序的上机步骤。通过本章的学习,读者应重点掌握C语言的特点、C程序的结构和上机运行C程序的方法。 1.1 C语言的发展和特点 自从计算机诞生以来,为了更好地进行软件的设计,各种高级程序设计语言也在不断地发展、进步和完善。C语言就是其中最优秀的程序设计语言之一。 1.1.1 C语言的发展过程 C语言是目前世界上最流行、使用最广泛的高级程序设计语言。在设计操作系统等系统软件和需要对硬件进行操作时,使用C语言编程明显优于其他高级语言,许多大型应用软件和系统软件都是用C语言编写的。 C语言的起源可以追溯到ALGOL 60。1963年英国的剑桥大学在ALGOL 60的基础上推出了CPL语言,但是CPL语言难以实现。1967年英国剑桥大学的Matin Richards对CPL 语言作了简化,推出了BCPL语言。1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步的简化,设计出了很简单且接近硬件的B语言,并用B语言写了第一个UNIX操作系统,在DEC PDP-7型计算机上实现。1971年在DEC PDP-11上实现了B语言。1972年由美国的Dennis M.Ritchie在B语言的基础上设计出了C语言,并首次在UNIX操作系统的DEC PDP-11计算机上使用。 为了推广UNIX操作系统,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年Brian W.Kernighian和Dennis M.Ritchie 出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,1983年美国国家标准研究所(ANSI)为C语言制定了第一个ANSI标准,称为ANSI C。1987年美国国家标准研究所
c语言练习题带答案)-绝对经典题目不看后悔
1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53.
C语言试题-选择题及答案
C语言试题 ★第1 题: 阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2; g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。 #include
char *p=”abcdefghijklmnopq”; main() { while(*p++!=?e?) ; printf(“%c\n”, *p); } A. c B. d C. e D. f ★第6 题: 阅读程序,选择程序的输出结果___D___。 #include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23 B. 24 C. 25 D. 26 第7 题: 阅读程序,选择程序的输出结果___B___。 #include main() { static char a[ ]= ”language”, b[]=”program”; char *ptr1=a, *ptr2=b; int k; for(k=0; k<7; k++) if(*(ptr1+k)==*(ptr2+k)) printf(”%c”, *(ptr1+k)); } A. gae B. ga C. language D. 有语法错误 ★第8 题: 函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中 C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后
C语言试题选择题及答案
★第1 题: 阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2;
g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。#include char *p=”abcdefghijklmnopq”; main() { while(*p++!=’e’) ; printf(“%c\n”, *p); } A. c B. d C. e D. f ★第6 题: 阅读程序,选择程序的输出结果___D___。#include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23
(完整版)C语言程序设计选择题库及答案
单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while
【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义
(完整版)C语言选择题(附答案)
第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5
5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1
C语言教案(上):第一章c语言概述(高教版).doc
课题第一章C语言概述 教学目的1、掌握上机步骤 2、能正确调试程序 教材分析教学重点计算机运行时的过程教学难点上机步骤 课时安排 2 教学方法讲授与演示法相结合 讨论法、实践法、任 务驱动 教具计算机、投影仪 教学内容及过程设计一新课引入 有了新的程序,如何实现程序的结果验证? 二讲授新课 一)、上机步骤(上机环境:Turbo C3.0) 1.进入环境 2.编辑源程序 3.保存源程序 4.编译源程序 5.执行程序,查看结果 6. 退出C环境 (1) 进入Turbo C++ 3.0集成环境 ①在DOS环境下 C:\TC3.0>tc ↙ ②在Windows环境下 找到可执行文件tc.exe,执行该文件。
主菜单:11个菜单项: File Edit Search Run Compile Debug Project Options Window Help 在编辑(EDIT) 状态下光标表示当前进行编辑的位置,在此位置可以进行插入、删除或修改,直到自已满意为止。 保存:在编辑(EDIT) 状态下光标表示当前进行编辑的位置,在此位置可以进行插入、删除或修改,直到自已满意为止。 (3) 对源程序进行编译 选择“Compile”(或“Alt+F9”)对源程序进行编译。 (4) 将目标程序进行连接 选择菜单“Compile”→“Link”,如果不出现错误, 会得到一个后缀为.exe的可执行文件 (5) 执行程序 选菜单“Run”→“Run”( 或按“Ctrl+F9”键)。 (6) 退出Turbo C++ 3.0环境 选择“File”→“Quit”。 三课堂小结 1、C语言的构成要素,main函数在程序中的作用 2、上机操作的过程 备注:安排上机实验,熟悉TC环境及简单的C语言程序构成 上机内容为:见上机实训教案1求3个数中较大者。 另例1、图案程序共两个。
C语言选择题(含答案)
C语言选择题(含答案) 选择题 1.以下叙述正确的是_____。 A) 在C程序中,main函数必须位于程序的最前面。 B) C语言本身没有输入输出语句。 C) C程序的每行只能写一条语句。 D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 2.下面四个选项中,均是不合法的用户标识符的选项是。 A) A B) float C) b-a D) _123 P_0 1a0 goto temp do _A int INT 3、下列四个选项中都是合法的转义字符的 A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’ 4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 5、若有代数式,则不正确的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 6、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。则以 下不能满足要求的表达式是_________。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 7、以下程序的运行结果是 : main() { int m=6;
if(m++> 6) printf(" %d\n",m); e1se printf("%d\n",--m ); } A)4 B)5 C) 7 D) 6 8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 : if(a正确的输出结果为 main() { int x,y,z scanf("%d%d%d",&x,&y,&z ); printf(“x+y+z=%d\n” ,x+y+z);。 } A)x+y+z=48 B)x+y+z=35 C)x+y+z=35 D)不确定值 10、已知各变量的类型说明如下 int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是 : A) x%(-3) B) w+=-2
C语言期末选择题及答案
第二学期《C 语言程序设计》模考 总共68 题共100分 帐号:2013040431 姓名:刘园 答题时间:2015-7-3 8:26:55/2015-7-3 8:40:12 通过分数:60 考生得分 :1 全部显示 错题显示
是( )。(1分) A.'cd' B.0.1e+6 C."\a" D.'\011' 标准答案:A 考生答案: 本题得分:0 试题解析: 单选题4749单选类 4.以下选项中不合法的标识符是( )。(1分) A.print B.FOR C.&a D._00 标准答案:C 考生答案: 本题得分:0 试题解析: 单选题4773单选类 5.设有语句char a='\72';则变量a( )。(1分) A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法 标准答案:A 考生答案:B
A.10<x<20 B.x>10‖x<20 C.x>10&&<20 D.(x>10)&&(x<20) 标准答案:D 考生答案: 本题得分:0 试题解析: 单选题4820单选类 12.若定义:int a,b;,则表达式 (a=2,b=5,a++,b++,a+b)的值为()。(1分) A.7 B.8 C.9 D.10 标准答案:C 考生答案: 本题得分:0 试题解析: 单选题4837单选类 13.若有定义:int c1=1,c2=2;,则表达式1.0/c2*c1的值是()。(1分) A.0 B.0.5 C.1 D.2 标准答案:B 考生答案:
试题解析: 单选题4890单选类 14.已有定义int x; f1oat y;且执行 scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则x的值为().(1分) A.12345 B.123 C.45 D.345 标准答案:B 考生答案: 本题得分:0 试题解析: 单选题4882单选类 15. 以下程序的输出结果是() #include<stdio.h> int main() { int k=17; printf(“%d,%o,%x\n”k,k,k); return 0; } (1分) A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17,21,11 标准答案:D 考生答案: 本题得分:0
第一章C语言概述
第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数
D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C 语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名 是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式 一、选择题: 1、以下选项中,不正确的 C 语言浮点型常量是( C )。
c语言选择题及答案
1﹑以下选项中不合法的用户标识符是( C )。 A)_123 B)PP C)A$ D)Dim 2﹑C语言提供的合法数据关键字是( A )。 A)float B) Sagned C) Integer D) ing 3﹑判断char型变量c1是否为小写字母的正确表达式为 ( D )。 A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z') C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z') 4﹑C语言可执行程序开始执行点为( C ). A)程序中第一条可执行语句 B) 程序中第一个函数 C)程序中的main函数D) 包含文件中的第一个函数 5﹑以下说法中正确的是( C ). A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行 D) C语言程序中,main函数必须放在程序的开始部分 6﹑设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是( C )。 A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;} 7﹑若有说明和语句: int a=5,b; b=a++; 此处变量b的值是( C )。 A)7 B)6 C)5 D) 8﹑以下程序的输出结果是( D )。 int x=10,y=10; printf("%d %d\n",x--,--y); A) 10 10 B) 9 9 C) 9 10 D) 10 9 9﹑C语言用( C )表示逻辑“真”值。 A)true B)t或y C)非零整数值 D)整数0 10﹑指出下面正确的输入语句( B )。 A) scanf("a=b=%d",&a,&b) ; B) scanf("%d,%d",&a,&b) ; C) scanf("%c",c) ; D) scanf("% f%d\n",&f) ; 11﹑若x=5,y=3 则y*=x+5; y的值为( D )。 A) 10 B) 20 C) 15 D) 30 12﹑设整型变量n的值为2,执行语句"n+=n-=n*n;"后,n的值是( C )。 A)0 B)4 C) - 4 D) 2 13﹑以下程序的运行结果是( D )。 void main() { int a=65; char c=’A’; printf(“%x,%d”,a,c); }
C语言-基本选择题及答案解析
计算机程序设计基础(C语言) 单项选择练习题 说明:带*号的对非信息学院的同学不作要求。 一、基本概念 1. C语言程序是由 C 构成的。 A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 6. 下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7. 下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 D. C程序一定由函数构成的。 8.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行
C语言练习题及参考答案
练习题1及参考答案 1. 单项选择题 (1)以下并非C语言的特点的是。 A. C语言简洁和紧凑 B. 能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D. C语言移植性好 【答】B (2)一个C程序的执行是从。 A. main()函数开始,直到main()函数结束 B. 第一个函数开始,直到最后一个函数结束 C. 第一个语句开始,直到最后一个语句结束 D. main()函数开始,直到最后一个函数结束 【答】A (3)在C程序中,main()的位置。 A. 必须作为第一个函数 B. 必须作为最后一个函数 C. 可以任意 D. 必须放在它所调用的函数之后 【答】C (4)一个C程序是由。 A. 一个主程序和若干子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 【答】B (5)下列说法正确的是。 A. 在执行C程序时不是从main()函数开始的 B. C程序书写格式限制严格,一行内必须写一个语句 C. C程序书写格式比较自由,一个语句可以分行写在多行上 D. C程序书写格式严格要求一行内必须写一个语句,并要求行号 【答】C 2. 填空题 (1)一个C源程序至少有①个main()函数和②个其他函数。【答】①一②若干 (2)任何C语句必须以结束。 【答】分号 (3)C语言源程序的基本单位是。 【答】函数 (4)C编译程序的功能是。
【答】将C源程序编译成目标代码
练习题2及参考答案 1. 单项选择题 (1)以下字符串为标识符的是。 A. _MY B. 2_2222 C. short D. LINE 5 【答】A (2)下列符号可以作为变量名的是。 A. +a B. *p C. _DAY D. next day 【答】C (3)设c是字符变量,则以下表达式正确的是。 A. c=666 B. c='c' C. c="c" D. c="abcd" 【答】B (4)23+'m'+3.6-123.45/'b'的结果是型数据。 A. char B. double C. int D. long int 【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。 (5)若变量已正确赋值,以下符合C语言语法的表达式是。 A. a=a+7; B. a=7+b+c,a++ C. int(12.3%4) D. a=a+7=c+b 【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。 (6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。 A. x=(x=1+2,x*2) B. x=y>2?6:5 C. x=9-(--y)-(--y) D. x=y*(int)(4.8/2) 【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。 (7)若定义 int m=7,n=12; 则能得到值为3的表达式是。 A. n%=(m%=5) B. n%=(m-m%5) C. n%=m-m%5 D. (n%=m)-(m%=5) 【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。 (8)以下程序的运行结果是。
C语言试题-选择题及答案
阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2; g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。 #include char *p=”abcdefghijklmnopq”; main() { while(*p++!=’e’) ; printf(“%c\n”, *p); } A. c B. d C. e D. f
阅读程序,选择程序的输出结果___D___。 #include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23 B. 24 C. 25 D. 26 第7 题: 阅读程序,选择程序的输出结果___B___。 #include main() { static char a[ ]= ”language”, b[]=”program”; char *ptr1=a, *ptr2=b; int k; for(k=0; k<7; k++) if(*(ptr1+k)==*(ptr2+k)) printf(”%c”, *(ptr1+k)); } A. gae B. ga C. language D. 有语法错误 ★第8 题: 函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中 C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后 D. 将串str2复制到串str1中,再将串str1连接到str3之后 ★第9 题: 设有以下程序段,则在main函数中使用语句__D___是无意义的。main() { int min(); int a, b, c, (*p)(); p=min; … } min(x, y) int x, y; { … } A. printf(”%d\n”, min(a,b)); B. c=min(a, b); C. c=(*p)(a,b);