C程序试题3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言模拟试卷3
一、项选择题(选择一个最佳答案,每题2分,共20分)
1.下列叙述正确的是()。
A)函数调用时,若形参和实参同名则两者共用存储单元。
B)一个C程序的执行总是从main函数开始,到本程序文件的最后一个函数结束。
C)在C程序中,注释说明只能位于一条语句的后面。
D)宏替换只是字符的替换,不占用运行时间。
2.不正确的字符串常量是( )。
A)’abc’ B)”12’12” C)”0” D)””
3.已知如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B当从第一列开始输入数据
时,正确的数据输入方式是()。(注:
int a1,a2; char c1,c2;
scanf(%d%d”,&a1,&a2);
scanf(%c%c”,&c1,&c2);
A)1020AB
4.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A)j*m+i B) i*m+j C)i*m+j-1 D) i*m+j-1
5.下面程序段的运行结果是()。
char a[]=”language”,*p=a;
while(*p!=’g’) {printf{“%c”,*p-32};p++;}
A) LANgUAGE B) language C) LAN D) LANgUAgE
6.以下正确的程序段是( )。
A)char str[20]; B) char p;
scanf(“%s”,&str); scanf(“%s”,p);
C)char str[20]; D) char str[20],*p=str;
scanf(“%s”,&str[2]); scanf(%s”,p[2]);
7.若有定义语句int a[5], *p=a; 则对a数组元素的正确引用是()。
A) *&a[5] B) a+2 C) *(p+5) D) *(a+2)
8.若有说明:int a[10]; 则对a数组元素的正确引用是()。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]
9.有以下程序
#include
void main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i printf(“5d\n”,len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是( )。 A) 14 B) 12 C) 8 D) 6 10.有以下程序 void main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是( )。 A) 自然数1~9的累加和B) 自然数1~10的累加和 C) 自然数1~9中的奇数之和D) 自然数1~10中的偶数之和 二、填空题(每题2分,共16分) 1.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值。 2.若有short i=-4;则如下语句执行结果为。 printf(“%\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i); 3.若有定义:int a[3][4]={{1,2},{0}.{4,6,8,10}}; 则初始化后a[1][2]= ; a[2][1]= . 4.设char *s=”\ta\017bc”;则指针变量s指向的字符串所占的字节数为。 5.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值为,*(a+5)的值为。 6.若有数组名作为函数调用的实参,则传递给形参的是。 三、读程序写结果(每题6分,共24分) 1.有以下程序 #include int x1=30,x2=40; void sub(int,int); void main() { int x=20,y=10; sub(x,y); sub(x2,x1); printf("%d,%d,%d,%d\n",x,y,x2,x1) ; } void sub(int x,int y) { x1=x; x=y; y=x1;} 执行后输出的结果是。 2.有以下程序 #define LETTER 1 #include void main() {char str[20]="C Language",c; int i=0; while((c=str[i])!='\0') {i++; #ifndef LETTER if(c>='a' &&c<'z') c=c+1; else if(c=='z') c=c-25; #else if(c>='B'&&c<='Z') c=c-1; else if(c=='A') c=c+25; #endif printf("%c",c); } } 执行后输出的结果是。3.有以下程序 void main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 执行后输出的结果是。 4.有以下程序 #include void main() { int a[10][10],i,j,m,n=9; if(n%2==0) m=n/2; else m=n/2+1 ; for(i=0;i for(j=i;j { a[i][j]=i+1; a[n-1-i][j]=i+1; a[j][i]=i+1; a[j][n-1-i]=i+1; } for(i=0;i {for(j=0;j printf("%d ",a[i][j]); printf("\n"); } } 执行后输出的结果是。