C语言模拟题目及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言模拟题目及答案
一.选择题:
1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2.设int k=017,g=111; 执行语句printf("%d,%x",k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3.对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4.下面对数组的初始化,错误的是_____。 char s[5]="abc"; char s[5]={'a','b','c'}; char s[5]=" "; char s[5];s="abc"; 5.设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行 循环体语句只执行一次 6.如果x为int型且为5,则执行if(x--<5) printf("%d",x);else printf("%d",x++);后输出结果是______。 3 4 5 6 7.有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用语句中,含有的实参个数是____。 3 4 5 有语法错 8.在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式 逻辑表达式 关系表达式 任意表达式 9.若给定条件表达式(n)(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10.一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型 定义函数时指定或缺省的函数类型 调用函数时临时决定 return语句中表达式的类型
答案:T F F T T F F T F T
4.读程序,写结果。
1)指出程序运行结果。
# include ""
main()
{
int x,a,b,c,d,e;
char ch;
x=100;
a=40;
b=30;
c=20;
d=10;
e=0;
ch='a';
if (a<b)
x+=1;
else if (c>d)
;
if ((fp1=fopen("k:\","r"))==NULL)
{ printf("Open file error,Please contact your teacher");
exit(0);
};
if ((fp2=fopen("k:\","w"))==NULL)
{ printf("!Create file error,Please tell your teacher at once!");
t[2*i]='\0';
}
main()
{ char s[100], t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}
6. 编程:
在k:\有程序文件,程序功能是计算并输出1000以内所有能被47整除的正整数之和。
if(i%47==0)s+=i;
return s;
}
/*Caution: you can only change codes in function above*/
main()
{
printf("result: %d\n",calu());
{ int s[8];
FILE *fp1, *fp2;
int i;
答案:D A B D C B A D C B
二.填空题:
1.如果static int y=8;main(){ int y=3;printf("%d", y);}则输出结果是______。 2.若int x=120,y=50; 执行printf("%d",(y,x));后输出结果是______。 3.若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的值为__________。 4.在C语言中是没有输入输出语句的,而是通过提供库函数______和printf来完成输入输出功能的。 5.已知字母'A'的ASCII码值为65,ch1和ch2均为字符型变量,且ch1='A',ch2='B',则printf("%c,%c",ch1,ch2-ch1+'A');语句输出结果是_________。 6.假定有以下变量定义: int k=7, x=12; 在空白处填入运算符使表达式的值为3:(x%=k)_____(k%=5) 。 7.若i是整型变量,执行语句for(i=1;i<=7;i++) {if(i%2) printf("*"); else continue;printf("#");}后,输出结果是______。 8.程序中定义宏#define w 3和#define L w+w,若定义int val;且命令val=L*L, 则变量val的值为____。 9.表示“整数x的绝对值大于5”时,值为“真”的C语言表达式是(利用逻辑运算符) x>5____x<-5。 10.请填空,完善如下语句:char a[___]="Hello";。
例如:当s中的字符串为:"ABCDE"时,
则t中的字符串应只能改动*found*下一行,不要改动main函数,不得增行或删行,也不得更改程序的结构!
/*****答案***/
#include <>
#include <>
void fun (char s[], char t[])
else if (ch)
if (e)
x+=1;
x+=x;
if (x)
x*=2;
else x-=x;
printf("%d\n",x);
}
答案:400
2).整个程序运行结果是:
#include ""
main()
{
char ch='a';
int x=10;
while (ch<'j')
{
printf("%c,",ch);
ch+=2;
}
do
{
x--;
if (x%3==0) continue;
printf("%d,",x);
}
while (x>0);
printf("\n");
}
答案:a,c,e,g,i,8,7,5,4,2,1
5. 改错:
给定程序k:\中函数fun的功能是:把在字符串s中出现的每个字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中逆排列。
exit(0);
};
for (i=0;i<8;i++)
{ fscanf(fp1,"%d",&s[i]);
fprintf(fp2,"%d\n",s[i]-calu());
}
fclose(fp2);
fclose(fp1);
}
}
7.在k:\有程序文件,程序功能是按显示出的a字符串中的10个字母,照着输入各字母到b数组,亦即“练习英文打字”。
{
int i, sl;
sl=strlen(s);
/***********found************/
for(i=0;i<sl;i++)
{
t[2*i]=s[sl-i-1];
/***********found***********/
t[2*i+1]=s[sl-i-1];
}
/***********found***********/
其中函数count的功能是:与a数组中各元素对照,统计出b数组中对应字母共有多少是正确的,赋给r,多少是错误的,赋给e,再算出正确率,赋给rr。请完成count的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!
其中函数tra的功能是:由x数组中的各简谱字符,对应a中元素,向y数组中写入音名字符串。请完成tra的函数体。提示:'1'的ASCII码值为49。
其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。请完成calu的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!
#include ""
int calu()
{
inti,s=0;
for(i=1;i<1000;i++)
答案:
,B 7.*#*#*#*#
三.判断题:
1.所有的变量在使用前都必须予以定义。 2.设x和y均为int型变量,且x=1,y=2,则表达式+x/y的值为。 3.在switch结构中,break语句可使流程立即跳出switch语句体。 4.已定义int i; 则for(;i=1;)printf("*");中的循环体必执行无穷多次。 5.空语句是合法的C语句。 6.以下程序段可以输出10个整数:for(i=0 ;i<=9; printf("%d\n",i+=2));7.在main函数中定义的变量称为全局变量。 8.while语句的循环体中还可以包含for循环。 9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是由实参传给形参,再由形参传回实参。 10.先要定义一个二维数组c[M][N]来存放字符串"China"、"Tianjin"、"Education",则常量M和N的合理取值应为3和10。
一.选择题:
1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2.设int k=017,g=111; 执行语句printf("%d,%x",k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3.对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4.下面对数组的初始化,错误的是_____。 char s[5]="abc"; char s[5]={'a','b','c'}; char s[5]=" "; char s[5];s="abc"; 5.设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行 循环体语句只执行一次 6.如果x为int型且为5,则执行if(x--<5) printf("%d",x);else printf("%d",x++);后输出结果是______。 3 4 5 6 7.有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用语句中,含有的实参个数是____。 3 4 5 有语法错 8.在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式 逻辑表达式 关系表达式 任意表达式 9.若给定条件表达式(n)(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10.一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型 定义函数时指定或缺省的函数类型 调用函数时临时决定 return语句中表达式的类型
答案:T F F T T F F T F T
4.读程序,写结果。
1)指出程序运行结果。
# include ""
main()
{
int x,a,b,c,d,e;
char ch;
x=100;
a=40;
b=30;
c=20;
d=10;
e=0;
ch='a';
if (a<b)
x+=1;
else if (c>d)
;
if ((fp1=fopen("k:\","r"))==NULL)
{ printf("Open file error,Please contact your teacher");
exit(0);
};
if ((fp2=fopen("k:\","w"))==NULL)
{ printf("!Create file error,Please tell your teacher at once!");
t[2*i]='\0';
}
main()
{ char s[100], t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}
6. 编程:
在k:\有程序文件,程序功能是计算并输出1000以内所有能被47整除的正整数之和。
if(i%47==0)s+=i;
return s;
}
/*Caution: you can only change codes in function above*/
main()
{
printf("result: %d\n",calu());
{ int s[8];
FILE *fp1, *fp2;
int i;
答案:D A B D C B A D C B
二.填空题:
1.如果static int y=8;main(){ int y=3;printf("%d", y);}则输出结果是______。 2.若int x=120,y=50; 执行printf("%d",(y,x));后输出结果是______。 3.若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的值为__________。 4.在C语言中是没有输入输出语句的,而是通过提供库函数______和printf来完成输入输出功能的。 5.已知字母'A'的ASCII码值为65,ch1和ch2均为字符型变量,且ch1='A',ch2='B',则printf("%c,%c",ch1,ch2-ch1+'A');语句输出结果是_________。 6.假定有以下变量定义: int k=7, x=12; 在空白处填入运算符使表达式的值为3:(x%=k)_____(k%=5) 。 7.若i是整型变量,执行语句for(i=1;i<=7;i++) {if(i%2) printf("*"); else continue;printf("#");}后,输出结果是______。 8.程序中定义宏#define w 3和#define L w+w,若定义int val;且命令val=L*L, 则变量val的值为____。 9.表示“整数x的绝对值大于5”时,值为“真”的C语言表达式是(利用逻辑运算符) x>5____x<-5。 10.请填空,完善如下语句:char a[___]="Hello";。
例如:当s中的字符串为:"ABCDE"时,
则t中的字符串应只能改动*found*下一行,不要改动main函数,不得增行或删行,也不得更改程序的结构!
/*****答案***/
#include <>
#include <>
void fun (char s[], char t[])
else if (ch)
if (e)
x+=1;
x+=x;
if (x)
x*=2;
else x-=x;
printf("%d\n",x);
}
答案:400
2).整个程序运行结果是:
#include ""
main()
{
char ch='a';
int x=10;
while (ch<'j')
{
printf("%c,",ch);
ch+=2;
}
do
{
x--;
if (x%3==0) continue;
printf("%d,",x);
}
while (x>0);
printf("\n");
}
答案:a,c,e,g,i,8,7,5,4,2,1
5. 改错:
给定程序k:\中函数fun的功能是:把在字符串s中出现的每个字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中逆排列。
exit(0);
};
for (i=0;i<8;i++)
{ fscanf(fp1,"%d",&s[i]);
fprintf(fp2,"%d\n",s[i]-calu());
}
fclose(fp2);
fclose(fp1);
}
}
7.在k:\有程序文件,程序功能是按显示出的a字符串中的10个字母,照着输入各字母到b数组,亦即“练习英文打字”。
{
int i, sl;
sl=strlen(s);
/***********found************/
for(i=0;i<sl;i++)
{
t[2*i]=s[sl-i-1];
/***********found***********/
t[2*i+1]=s[sl-i-1];
}
/***********found***********/
其中函数count的功能是:与a数组中各元素对照,统计出b数组中对应字母共有多少是正确的,赋给r,多少是错误的,赋给e,再算出正确率,赋给rr。请完成count的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!
其中函数tra的功能是:由x数组中的各简谱字符,对应a中元素,向y数组中写入音名字符串。请完成tra的函数体。提示:'1'的ASCII码值为49。
其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。请完成calu的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!
#include ""
int calu()
{
inti,s=0;
for(i=1;i<1000;i++)
答案:
,B 7.*#*#*#*#
三.判断题:
1.所有的变量在使用前都必须予以定义。 2.设x和y均为int型变量,且x=1,y=2,则表达式+x/y的值为。 3.在switch结构中,break语句可使流程立即跳出switch语句体。 4.已定义int i; 则for(;i=1;)printf("*");中的循环体必执行无穷多次。 5.空语句是合法的C语句。 6.以下程序段可以输出10个整数:for(i=0 ;i<=9; printf("%d\n",i+=2));7.在main函数中定义的变量称为全局变量。 8.while语句的循环体中还可以包含for循环。 9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是由实参传给形参,再由形参传回实参。 10.先要定义一个二维数组c[M][N]来存放字符串"China"、"Tianjin"、"Education",则常量M和N的合理取值应为3和10。