测试D.docx
- 文档编号:4456781
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:13
- 大小:18.36KB
测试D.docx
《测试D.docx》由会员分享,可在线阅读,更多相关《测试D.docx(13页珍藏版)》请在冰豆网上搜索。
测试D
一、单项选择题:
(10分,每题2分)
1.设有以下定义:
inta[3][3]={1,2,3,4,5,6,7,8,9};
int(*ptr)[3]=a,*p=a[0];
则以下能够正确表示数组元素a[1][2]的表达式是。
A)*((*ptr+1)[2])
B)*(*(p+5))
C)(*ptr+1)
D)*(*(a+1)+2)
2.有如下程序片段:
inti=0;
while(i++<=2);
printf("%d",i);
则正确的执行结果是:
A)2B)3
C)4D)无结果
3.合法的数组定义是。
A)inta[]="language";
B)inta[5]={0,1,2,3,4,5};
C)chara="string";
D)chara[]={"0,1,2,3,4,5"};
4.设有如下定义:
structst
{
inta;
floatb;
}st1,*pst;
若有pst=&st1;则下面引用正确的是________。
A)(*pst.st1.b)B)(*pst).b
C)pst->st1.bD)pst.st1.b
5.如果inti=3,则printf("%d",-i++)的输出结果是,i的值是。
A)-34B)-44
C)-43D)-33
二、写出下列程序的运行结果。
(10分,每题2分)
1.
#include
main()
{
intx,y;
scanf("%2d%*2s%1d",&x,&y);
printf("%d",x/y);
}
程序运行时输入:
2345678↙
则程序运行结果是:
2.
#include
main()
{
inti=0;
while(i<3)
{
switch(i++)
{
case0:
printf("fat");
break;
case1:
printf("hat");
case2:
printf("cat");
default:
printf("Ohno!
");
}
putchar('\n');
}
}
运行结果是:
3.
#include
intSquare(inti);
main()
{
inti=0;
i=Square(i);
for(;i<5;i+=2)
{
staticinti=1;
i+=Square(i);
printf("%d\t",i);
}
printf("%d\n",i);
}
intSquare(inti)
{
returni*i;
}
程序运行结果是:
26426
4.
#include
voidinv(int*p,intn);
main()
{
inti;
inta[10]={13,7,9,11,0,6,7,5,4,2};
for(i=0;i<10;i++)
{
printf("%d,",a[i]);
}
printf("\n");
inv(a,10);
for(i=0;i<10;i++)
{
printf("%d,",a[i]);
}
}
voidinv(int*p,intn)
{
int*i,*j,m=(n-1)/2,t;
j=p+n-1;
for(i=p;i<=p+m;i++,j--)
{
t=*i;*i=*j;*j=t;
}
}
程序运行结果:
inv
5.
#include
structname
{
charfirst[20];
charlast[20];
};
structbeam
{
intlimbs;
structnametitle;
charty[30];
};
main()
{
structbeam*pb;
structbeamdeb={6,{"Berbnazel","Gwolkapwolk"},
"Arcturan"};
pb=&deb;
printf("%d\n",deb.limbs);
printf("%s\n",pb->ty);
printf("%s\n",pb->ty+2);
}
运行结果是:
6
Arcturan
cturan
三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(8分,每空1分)
1.下面这个程序的功能是对含有n个元素(最多10个)的一维数组按升序进行排序。
#include
#defineARRAY_SIZE10
voidSort(inta[],intn);
voidInputArray(inta[],intn);
voidPrintArray(inta[],intn);
main()
{
inta[ARRAY_SIZE],n;
printf("Inputarraylenthn<=10:
");
scanf("%d",&n);
printf("输入数组a:
\n");
InputArray(a,n);
Sort(a,n);
printf("打印排序后的数组a:
\n");
PrintArray(a,n);
}
voidSort(inta[],intn)
{
inti,j,p,temp;
for(i=0;i<;i++)
{
p=i;
for(j=;j { if()p=j; } if() { temp=a[p]; a[p]=a[i]; a[i]=temp; } } } voidInputArray(inta[],intn) { inti; for(i=0;i { ; } } voidPrintArray(inta[],intn) { inti; for(i=0;i { printf("%d",a[i]); } printf("\n"); } 2.下面程序的功能是从键盘输入一行字符,统计其中有多少单词。 假设单词之间以空格分开。 [提示: 判断是否有新单词出现的方法是------当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。 ] #include main() { charstr[80]; inti,num; gets(str); if(str[0]! ='') { num=1; } else { num=0; } for(i=1 ;str[i];i++) { if(str[i] &&str[i-1]) { num++; } } printf("num=%d\n",num); } 四、在下面给出的4个程序中,共有16处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。 (30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。 只要找对15个即可,多找不加分。 ) 1.在给定的一组书名中,从键盘任意输入一个书名(书名可以有空格)。 若找到,则打印该书名,否则打印”没找到”。 #include #include main() { inti,findFlag=0; charx; charstr[][13]={"Pascal","Basic","Fortran","Java", "VisualC","VisualBasic"}; printf("请输入一个字符串: "); gets(x); while(i<6&&! findFlag) { if(x==str[i]) { findFlag=1; } i++; } if(findFlag) { printf("%s\n",x); } else { printf("没找到! \n"); } } 2.打印100~200之间的所有素数。 #include #include main() { intm,i; for(m=100;m<=200;m++) { for(i=2;i { if(m%i==0) flag=0; } if(flag) { printf("%d",m); } } } 3.从键盘输入任意一个学生的学号,在班级学生表中(学生表的学号是按升序排序的,且班级最多30人)查找该学号是否存在,存在打印其考试成绩,否则打印“Notfind! ”。 #include #defineARR_SIZE30; intSearch(long*p,intn,longx); main() { longnum[ARR_SIZE],x; floatscore[ARR_SIZE]; inti,n,pos; printf("输入班级实际人数: "); scanf("%d",&n); printf("输入学生学号和成绩"); for(i=0;i { scanf("%ld%f\n",&num[i],&score[i]); } printf("输入待查找学号: "); scanf("%d",&x); pos=Search(num,n,x); if(pos+1) printf("score=%f\n",score[pos]); else printf("Notfind! \n"); } intSearch(long*p,intn,longx); { inti,flag; for(i=0;i { if(*(p+i)==x) { flag=i; break; } else { flag=-1; } } returnflag } 4.该程序的作用是将一个字符串中的元音字母复制到另一个字符串,然后输出。 #include main() { charstr1[80],str2[80]; printf("输入一个字符串: "); gets(str1); Cpy(str1[],str2[]); printf("输出一个字符串\n"); puts(str2); } voidCpy(chars[],charc[]) { inti,j; for(i=0;s[i] ! ='\0';i++) { if(s[i]='a'||s[i]='A'||s[i]='e'||s[i]='E'|| s[i]='i'||s[i]='I'||s[i]='o'||s[i]='O'|| s[i]='u'||s[i]='U') { s[i]=c[j]; j++; } } } 五、编程(42分) 1.编程计算: 1! +3! +5! +…+(2n-1)! 的值。 其中,n值由键盘输入。 (14分) 2.不用标准库函数strlen,自己编写一个函数MyStrlen,实现计算字符串长度的功能。 要求在主函数中输入一个字符串(可以读入空格),并在主函数中打印字符串的长度。 (14分) 请按以下给定的函数原型编写程序: intMyStrlen(charstr[]); 或 intMyStrlen(char*p); 注: 不按给定的函数原型或使用全局变量编写程序不给分。 3.编写一个函数,求最大值及最大值所在元素的下标。 要求在主函数中通过键盘任意输入一组数(最多10个),且在主函数中打印最大数及最大数元素的下标。 (14分) 请按以下给定的函数原型编写程序: voidFindmax(intnum[],intn,int*pMaxNum,int*pMaxPos); 或 voidFindmax(int*p,intn,int*pMaxNum,int*pMaxPos); 注: 不按给定的函数原型或使用全局变量编写程序不给分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试