C语言练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.设int a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。
2.文件使用方式“rb+”的含义是 。
3.设typedef struct {int a ;char s[10];}TYPE ;
TYPE u1;
则printf (“%d\n ”,sizeof (u1));的输出是 。
4.若定义:m=2,n=3,i=4,j=5,a=8,b=9,执行(a=m>n )&&(b=i>j )后,b 的值是 。
5.设有char *a=”ABCD ”,则printf(“%c ”*a)的输出是
6.请写出数学式 ab
ab 222
的C 语言表达式是 。 7.调用系统函数strcmp (),必须在程序的开头写上一条文件包含命令是___________。
8.设char a[20]={……NANJING ”},*p=a+2;,则*(p+2)的值是___________。
9. 有下面的程序段,请问输出结果是 。
#define N 8*x+x*x
x=2; s=5*N; printf(“%d ”,s)
10.执行以下程序后a 的值为 。
int a,k=16,m=3,*p1=&k,*p2=&m;
a=(*p1)/(*p2);
11.设有宏定义#define X(n) 3*n ,则printf (“%f\n ”,6.0/X(2));的输出结果是___________。
12.下面函数要求计算两个整数x,y 之和,并通过形参z 传回结果值,请填空, void add( int x,int y, )
{ *z=x+y;}
13.下面程序的输出结果为 。
int k;
char *str[6]={“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”},**p=str;
printf(“%s\n ”, *(p+3));
14.设有定义语句“struct {int x ;int y ;}d[2]={{1,3},{2,7}};”,则 printf (“%d\n ”,d[1].x );的输出是
15.函数中未指定存储类型的局部变量,其隐含的存储类型是。
16.设float a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。
17.以下程序的输出结果是
char s1[20]=”abcw12d”,s2[]=”123”;
main( )
{ strcpy(s1,s2);
printf(“%s\n”, s1); }
18.char *p=”string”; 则prinf(“%c”,*p)的结果是。
19.设有char*s[5]={“forturn”,”C++”,”basic”},执行prinf(“%s”,*(s+2));将输出______ _______。
20.下面程序的输出结果第一行为。
int k;
ch ar *str[6]={“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”},**p=str;
printf(“%c\n”,*(p[1]));
printf(“%s\n”, *(p+3));
21.若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是___________。
1.合法的C语言常量是()
A ox3T
B 039
C T
D ‘\t’
2.设int a=7;float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是()
A. 2.75
B. 3.25
C. 2.5
D. 0.0
3.下面语句或声明,正确的是()
A a=-2==4
B int c=(a+b)++
C a%=3.1
D fload a=b++=c
4.设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是( )
A. scanf("%f",&x[6]);
B. scanf("%lf",x[6]);
C. scanf("%lf",p+6);
D. scanf("%lf",p[6]);
5.定义如下变量及数组:int k,y[2][3]={2,4,6,8,10,12};
则下面语句的输出结果是()
for(k=0;k<2;k++)
printf(“%d”,y[1-k][k+1]);
A.10,4
B.8,12
C.6,10
D.10,6
6.设int a=2,b=5;,结果为0的表达式是()
A. a%b
B. a&&b
C.!(a=b)
D. a!=b
7.若有以下定义,则值为4的表达式是()。
int a[3][4]={{1,2},{3,4},{5,6}},(*p)[4]=a;
A.p[1][1] B.p++,*(p+1)
C.a[2][2] D.*(p+1*4+1)
8.若有如下结构定义:
struct stu
{int n,char m[20];}x1;
则下面正确的语句是()
A.scanf(“%d,%c”,x1);
B.scanf(“%d,%c”,&x1);
C.scanf(“%d”,x1.n);
D.scanf(“%s”,x1.m);
9.下面程序的输出结果是()
#include
main ()
{ int a[]={1,2,3,4,5} ,y,*p=&a[2];
y=*p--;
printf ("%d,%d", *p,y );}
A. 2,2
B. 3,3
C. 2,3
D. 3,2
10.设int a=7;float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是()
A. 2.75
B. 3.25
C. 2.5
D. 0.0
11.设int i=l, k=2;, 则错误的循环语句是()
A. for(i=0,k=k-1;i++,k++)s;
B. for(;k-1;i++)s;