C语言练习题和答案(新)
第1
1.执行以下程序的输出结果是__8921__。
main()
{ int n1,n2=1298;
while(n2!=0) {
n1=n2%10;n2=n2/10;printf("%d",n1);}
}
2.以下程序的运行结果是__end____。
main()
{
int a,b,c;a=2;b=3;c=1;
if(a>b) if(a>c)printf("%d\n",a);
else printf("%d\n",b);
printf("end\n");}
3.如果调用函数fopen() 不成功,则函数的返回值为__0__。
4.以下程序段的执行结果是_ffff__。
int a=-1;
printf("%x",a);
5.表示字符串s1等于字符串s2的逻辑表达式为_strcmp(s1,s2)==0_。
6.在C语言中,&作为双目运算符时表示的是按位与运算符,而作为单目运算符时表示的是__取地址__运算符。
7.C语言中的合法标识符只能有三种字符组成,它们是字母,_数字___和下划线。
8.C语言中从作用域的角度来看,变量可以分成__全局_变量和局部变量。
9.定义struct{
int n;
char y[5];
}tab[2]={{1,"ab"},{2,"cd"}},
*p=tab;
则表达式:printf("%s\n",p->y);的结果为__ab___。
10.以下程序段的执行结果是____6,8,6,7_______。
main()
{ int a1,a2,b1,b2;
a1=5;a2=7; b1=++a1;b2=a2++;
printf("%d,%d,%d,%d\n",a1,a2,b1,b2);
}
3.语句for(i=-2;i<5;i++) 的循环体共执行__7___次。
4.C语言提供专用于输入一个字符串(包括空格)的函数:___gets()______。
5.局部变量从存储类别可分为auto、register、__static__三种。
1.在TC
2.0中快捷键Ctrl+F9的功能是编译、连接和_运行______。
2.C语言函数库中字符串复制函数的函数名是strcpy___________。
3.有定义static char s[ ]="abc\tdef\n";则数组空间的字节数为___9_____。
4.写出a不能被b整除的C语言表达式是__a%b!=0___________。
6.执行以下程序的输出结果是_4321______。
main()
{ int n1,n2=1234;
while(n2!=0) {
n1=n2%10;n2=n2/10;printf("%d",n1);}
}
7.已知int x=10,y=20,z=30;则以下程序段的执行结果是__20,30,30_____。
if (x>y) z=x;x=y;y=z;
printf("%d,%d,%d\n",x,y,z);
8.在C文件中,数据存放的两种形式是文本形式和二进制形式。
9.有函数调用语句sub(a,1,fun(x,y),b+c,(m+n,c*h));则该函数调用语句中的实参个数为____5______。
switch语句表示范围1.以下程序运行结果是___6_________。
main()
{
int m=5;
if(m++>5) printf("%d",++m);
else printf("%d",m--);}
3.以下程序的运行结果是___20_________。
main()
{
int a,b,c,d,x;
a=c=0;b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)x=15;
else x=25;
printf("d=%d\n",d);}
4.在C语言中对文件读写之前应该用_fopen_____函数打开文件。
5.写出将字符串s1拷贝到字符串s2后,再连接到字符串s3之后的语句为__strcat(s3,strcpy(s2,s1));________________。
6.在C程序的表达式中,判断表达式成立的条件是___1_____表示逻辑"真"值,0表示逻辑"假
"值。
7.有定义static char s[ ]="China";则数组所占空间为____6_________个字节。
8.C语言中的合法标识符只能有三种字符组成,它们是_字母_____、数字和下划线。
9.表达式a=(b=3)*(c=9)的值是__27_____ 。
10.若定义了如下的结构体类型变量x,则x所占用的内存字节数为___11_____。
struct data1
{ int i;
char ch;
double f;
}x;
1.设i,j,k均为int型变量,则执行完以下for语句后,k的值是___10_______。
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
2.有定义
#define M(x) x*x/2
int a=2,b=3;
则M(a+b)/M(a) 的值为__8_______。
4.以下函数的功能是:求两整数的差,并返回。
int sub ( int a,int b)
{
__return___ a-b;
}
5.以下程序段的执行结果是___-4____。
main()
{
int a=2;a+=a-=a*a;
printf("a=%d\n",a);
}
6.将变量a、b中的大数赋给变量c 的表达式为_c=a>b?a:b__________。
7.C语言用___分号_________表示每条语句的结束。
8.若有int a[3]={10,12,30};则*(a+2)=___30________。
9.union data1
{ char name[6];
char sex;
int age;
}x;
则:printf("%d ",sizeof(x))的结果是:__6_______。
10.若for循环是当型循环,则do--while 循环是___直到型循环_________ 。
2.以下函数中,若m=10,则函数共输出___4____行。
void sub(int m,int s[ ] )
{
int n;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。