四川大学C语言上机考试复习题.docx
- 文档编号:9862586
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:41
- 大小:27.31KB
四川大学C语言上机考试复习题.docx
《四川大学C语言上机考试复习题.docx》由会员分享,可在线阅读,更多相关《四川大学C语言上机考试复习题.docx(41页珍藏版)》请在冰点文库上搜索。
四川大学C语言上机考试复习题
有以下程序
#include
voidmain()
{chark;inti;
for(i=1;i<3;i++)
{scanf("%c",&k);
switch(k)
{case'0':
printf("another\n");
case'1':
printf("number\n");
}
}
}
程序运行时,从键盘输入:
01↙,程序执行后的输出结果是___
another
number
number
下面程序的输出是_x=4___。
#include
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<-3;j++)
{if(j%3)
continue;
x++;
}
x++;
}
设x为int型变量,则执行以下语句后,x的值为:
0
intx=10;
x*=x/=-x;
printf("%d\n",--x);
若有代数式(其中e代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是sqrt(fabs(pow(n,x)+exp(x)))
有如下程序
#include
voidmain()
{intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是______。
a=2,b=1
若有inta=2,b=5,则a/b的结果为:
0
在C语言中,合法的基本数据类型关键字是______。
long
下面四个选项中,合法的用户自定义标识符是:
()a_b3
有以下程序
#include
voidmain()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
执行后输出的结果是______。
011122
已知字母A的ASCII码为十六进制数41,则下面程序段的运行结果为:
(67C)
charc='A';
c=c+'F'-'D';
printf("%d%c\n",c,c);
若变量已正确定义,有以下程序段
inti=0;
doprintf("%d,",i);while(i++);
printf("%d\n",i);
其输出结果是0,1
#include
voidmain()
{
inta=0,b=0;
a=10;/*给a赋值*/
b=20;/*给b赋值*/
printf("a+b=%d\n",a+b);/*输出计算结果*/
}
程序运行后的输出结果是a+b=30
对于一个正常运行的C程序,以下叙述中正确的是
程序的执行总是从main函数开始,在main函数结束
有以下程序
#include
voidmain()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的运行结果是1
若x和y都是int型变量,x=100、y=200,且有下面的程序片段
printf("%d",(x,y));
上面程序片段的输出结果是___200___。
下列条件语句中,功能与其他语句不同的是______。
if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
以下叙述中正确的是______。
C程序中注释部分可以出现在程序中任意合适的地方
有以下程序
#include
voidmain()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66↙。
则输出结果是______。
6,5,A,B
以下合法的字符型常量是'\x13'
以下程序执行后sum的值是_不确定_____。
#include
voidmain()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
有如下程序
#include
voidmain()
{
intn=9;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序的输出结果是__876____。
若执行下面的程序时从键盘上输入3和4,
#include
voidmain()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
则输出是___16___。
设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
6.000000
设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。
x=(int)(x*100+0.5)/100.0;
以下4组用户定义标识符中,全部合法的一组是__①____。
①②③④
_mainIftxtint
enclude-maxREALk_2
sinturbo3COM_001
在C语言的双目运算中要求运算数必须是整型的运算符是()。
%
以下叙述正确的是______。
C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4
m=(w w: x;m=(m m: y;m=(m m: z; 则该程序段执行后,m的值是______。 1 有以下程序 #include voidmain() {inta=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); elseif((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2); } 执行后输出的结果是______3。 以下程序段的输出结果是。 main() {inta=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%db=%dc=%d\n",a,b,c);} a=10b=30c=10 以下关于long、int和short类型数据占用内存大小的叙述中正确的是 由C语言编译系统决定 若要求表示“a不等于0”的关系,则能正确表示这一关系的表达式为 a! =0 有定义语句: inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。 if(a<3)x=3; if(a<2)x=2; if(a<1)x=1; 若有charc;则正确的赋值表达式是 c='\101' 下列叙述中正确的是在switch语句中,不一定使用break语句 以下程序的输出结果是___31___。 #include voidmain() {inta=0,i; for(i=1;i<5;i++) {switch(i) {case0: case3: a+=2; case1: case2: a+=3; default: a+=5; } } 设a=5、b=6、c=7、d=8、m=2、n=2,执行 (m=a>b)&&(n=c>d) 后n的值为__2____。 把C语言的源程序变为目标程序要经过(编译) 下面程序的功能是输出以下形式的金字塔图案: * *** ***** ******* #include voidmain() {inti,j; for(i=1;i<=4;i++) {for(j=1;j<=4-i;j++)printf(""); for(j=1;j<=______;j++)printf("*"); printf("\n"); }在下划线处应填入的是______。 2*i-1 有以下程序 #include voidmain() {intk=4,n=0; for(;n {n++; if(n%3! =0)continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是__3,3____。 下面程序 #include voidmain() {intx=100,a=10,b=20,ok1=5,ok2=0; if(a if(b! =15) if(! ok1)x=1; elseif(ok2)x=10; x=-1; printf("%d\n",x); } 的输出是__-1____。 设变量a是整型,f是单精度型,i是双精度型,则表达式20+'a'+i*f值的数据类型是(double) 有如下程序段 inta=14,b=15,x; charc='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为___1___。 以下4个选项,不能看作一条语句的是______。 if(b==0)m=1;n=2; 下列叙述中错误的是一个C语言程序只能实现一种算法 已知intx=12,y=3;执行下述程序后,变量x的值是_程序运行有错误___。 分母为零。 do {x/=y--; }while(x>y); printf("%d\n",x);} 以下不合法的字符常量是 '\018' 以下程序的输出结果是__101091____。 #include voidmain() {intx=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } 有以下程序 #include voidmain() {intx,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是2,3,1 以下叙述中正确的是break语句只能用在循环体内和switch语句体内 #include voidmain() { inti; for(i=1;i<=5;i++) { switch(i%2) { case0: i++;printf("? ");break; case1: i+=2;printf("*"); default: printf("$"); } } } 程序的输出结果为: __*$? _______ C语言中,float型数据占用___4__个字节 有如下程序 #include voidmain() {inta=2,b=-1,c=2; if(a if(b<0)c=0; elsec++; printf("%d\n",c); } 则输出结果为是 (2) 以下程序的输出结果是ACE。 #include voidmain() {inti; for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A'); printf("\n"); } 以下程序的功能是: 将输入的正整数按逆序输出。 例如: 若输入135则输出531。 请填空。 #include main() {intn,s; printf("Enteranumber: ");scanf("%d",&n); printf("Output: "); do {s=n%10;printf("%d",s);;} while(n! =0); printf("\n"); } n/=10或n=n/10 执行下面程序时,输出结果是(! )。 #include main() {inti; for(i=1;i<5;i++) {if(! i%3)putchar('Y'); elsecontinue; putchar('N'); }putchar('! '); } 以下程序运行后,输出是(0,3,1) #include voidmain() {inta=-1,b=4,c; c=(a++<=0)&&(! (b--<=0)); printf("%d,%d,%d\n",a,b,c); } 在C语言中,double型数据占用___8_____个字节。 若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=2l,b=55的形式输出,输出后光标到下一行开头。 请写出完整的输出语句。 printf("a=%d,b=%d\n"a,b); 以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。 当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件: a+b>c,a+c>b,b+c>a。 请填空。 #include voidmain() {floata,b,c scanf("%f%f%f",&a,&b,&c); if((a+b>c)&&(a+c>b)_________)printf("YES\n");/*a、b、c能构成三角形*/ elseprintf("NO\n");/*a、b、c不能构成三角形*/ }&&(b+c>a) 有如下程序 #include voidmain() {inti,sum; for(i=1;i<=3;sum++)sum+=i; printf("%d\n",sum); } 该程序的执行结果是______。 死循环 下面程序的输出是_4___。 #include main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<-3;j++) {if(j%3) continue; x++; } x++; } printf("x=%d\n",x); } C语言中while和dowhile循环的区别是(dowhile循环的循环体至少执行一次) 阅读以下程序 #include voidmain() {intx; scanf("%d",&x); if(x--<5)printf("%d\n",x); elseprintf("%d\n",x++); } 程序运行后,如果从键盘上输入5,则输出结果是__4____。 以下叙述中正确的是break语句只能用在循环体内和switch语句体内 对于一个正常运行的C程序,以下叙述中正确的是程序的执行总是从main函数开始,在main函数结束 如果inta=1,b=2,c=3,d=4;则条件表达式"a a: c c: d"的值是 (1) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(E==0) 有以下程序 #include voidmain() {intk=4,n=0; for(;n {n++; if(n%3! =0)continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是__3,3____。 有以下程序段 intk=0; while(k=1)k++; while循环执行的次数是______。 无限次(乍一看,还以为程序要表达的意思是当k等于1的时候做k++,但是C语言里关系表达式的等于应该是"=="。 一个等于号表示赋值,即这里面重复的把1赋给k,自然表达式k=1的值总为1,while后面的表达式恒为真,当然会进入死循环。 ) 若执行下面的程序时从键盘上输入3和4, #include voidmain() {inta,b,s; scanf("%d%d",&a,&b); s=a; if(a s=s*s; printf("%d\n",s); } 则输出是__16____。 已知字母A的ASCII码为十六进制数41,则下面程序段的运行结果为: () charc='A'; c=c+'F'-'D'; printf("%d%c\n",c,c); 将字符g赋给字符变量c(注: g的ASCII码的八进制值是147),正确的表达式是(c='\147') 有以下程序 #include voidmain() {inti; for(i=0;i<3;i++) switch(i) {case1: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是___011122___。 若有charc;则正确的赋值表达式是c='\101' 若变量均已正确定义并赋值,以下合法的C语言赋值语句是x=y==5; 有以下程序 #include voidmain() {inta=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); elseif((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2); } 执行后输出的结果是__3____。 若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: __10.0,22.0,33.0____。 (C语言中,数据输入时,必需严格按照scanf语句中的格式符来进行输入,不需要分隔符,否则作为有效字符读入。 选项中B中的逗号将被做为有效字符读入。 ) 设x为int型变量,则执行以下语句后,x的值为: 0 intx=10; x*=x/=-x; printf("%d\n",--x); 以下程序执行后sum的值是___不确定___。 #include voidmain() {inti,sum; for(i=1;i<6;i++)sum+=i; printf("%d\n",sum); } 设有定义: floata=2,b=4,h=3;,以下C语言表达式中与代数式(a+b)h/2计算结果不相符的是_(1/2)*(a+b)*h_____。 (两个整数相除结果为整数,如5/3的结果为1,舍去小数部分。 如果参加运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算。 根据运算符优先级,先计算括号内的,故选项B中(1/2)=0,整个表达式的值为0。 ) 请选出合法的C语言赋值语句___i++;___。 以下程序的输出结果是___1___。 #include voidmain() {inta=4,b=5,c=0,d; d=! a&&! b||! c; printf("%d\n",d); } 有如下程序 #include voidmain() {intx=1,a=0,b=0; switch(x){ case0: b++; case1: a++; case2: a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是__a=2,b=1____。 以下关于逻辑运算符两侧运算对象的叙述中正确的是可以是任意合法的表达式 以下程序的输出结果是__4____。 (本题最重要的分析d=a>c? (a>c? a: c): (b)),首先运算括号内的式子a>c? a: c,它的值是c的值6,即式子化成d=a>c? 6: 4。 显然a ) #include voidmain() {inta=5,b=4,c=6,d; printf("%d\n",d=a>c? (a>c? a: c): (b)); } 判断char型变量ch是否为'0'~'9'数字字符的正确表达式是((ch>='0')&&(ch<='9'))。 1已知intx=(1,2,3,4);变量x的值是_4___。 下列叙述中正确的是在switch语句中,不一定使用break语句 C语言规定: 在一个源程序中,main函数的位置(可以任意)。 下列叙述中错误的是一个C语言程序只能实现一种算法 有如下程序段 inta=14,b=15,x; charc='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为___1___。 有如下程序 #include voidmain() {floatx=2.0,y; if(x<0.0)y=0.0; elseif(x<10.0)y=1.0/x; elsey=1.0; printf("%f\n",y); } 该程序输出结果是___0.500000___。 请读程序: #include main() { inta,b; for(a=1,b=1;a<=100;a++){ if(b>=20)break; if(b%3==1){b+=3;continue;} b-=5; } printf("%d\n",a); } 上面程序的输出结果是_8_____。 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是连接符 假定w、x、y、z、m均为int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 语言 上机 考试 复习题