二、填空題
1.下列程序的輸出結(jié)果是 GDABC 。
#include
main( )
{char b[30],*chp;
strcpy(&b[0],"GH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",B);
}
2.下列程序的字符串中各單詞之間有一個(gè)空格,則程序的輸出結(jié)果是 How does she 。
#include
main( )
{char strl[ ]="How do you do",*p1=strl;
strcpy (strl+strlen(strl)/2,"es she");
printf("%s\n",pl);
}
3.若有如下圖所示五個(gè)連續(xù)的int類(lèi)型的存儲(chǔ)單元并賦值如下圖,a[0]的地址小于a[4]的地址。p和s是基類(lèi)型為int的指針變量。請(qǐng)對(duì)以下問(wèn)題進(jìn)行填空。
a[0] a[1] a[2] a[3] a[4]
2233445566
(1)若p已指向存儲(chǔ)單元a[1]。通過(guò)指針p給s賦值,使s指向最后一個(gè)存儲(chǔ)單元a[4]的語(yǔ)句是 s=p+3 。
(2)若指針s指向存儲(chǔ)單元a[2],p指向存儲(chǔ)單元a[0],表達(dá)式s-p的值是 2 。
4.以下程序的功能是:將無(wú)符號(hào)八進(jìn)制數(shù)字構(gòu)成的字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。例如,輸入的字符串為:556,則輸出十進(jìn)制整數(shù)366。請(qǐng)?zhí)羁铡?/P>
#include
main()
{char *p, s[6];
int n;
p=s;
gets (p);
n=*p-'0';
while( *(++p) !='\0') n=n*8+*p-'0';
printf("%d\n", n);
}
5.設(shè)有以下程序:
main()
{int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=(pl= =&m);
b=(*p1)/(*p2)+7;
printf("a=%d\n", a);
printf("b=%d\n",
B);
}
執(zhí)行該程序后,a的值為 0 ,b的值為 7 。
6.下列程序的輸出結(jié)果是 0 。
void fun(int *n)
{while((*n)--);
printf("%d", ++(*n));
}
main()
{int a=100;
fun (&a);
}
7.以下程序的輸出結(jié)果是 10 。
main()
{int arr[ ]={30, 25, 20, 15, 10, 5}, *p=arr;
p++;
printf("%d\n", *(p+3));
}
8.若有以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是 *(p+5) 。
int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;
9.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/P>
strlen (char a[ ], char b[ ])
{int num=0, n=0;
while (*(a+num)!= '\0' ) num++;
while (b[n]){*(a+num)=b[n]; num++; n++ ;}
return(num);
}
10.函數(shù)void fun(float *sn,int n)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過(guò)形參指針sn傳回;n通過(guò)形參傳入,n的值大于等于0。請(qǐng)?zhí)羁铡?/P>
void fun(float *sn, int n)
{float s=0.0, w, f= -1.0;
int i=0;
for(i=0; i<=n; i++)
{f= -1 *f;
w=f/ (2*i+1);
s+=w;
}
*sn = s;
}
11.下面函數(shù)用來(lái)求出兩個(gè)整數(shù)之和,并通過(guò)形參傳回兩數(shù)相加之和值,請(qǐng)?zhí)羁铡?/P>
int add(int x,int y, int * z)
{ *z =x+y;}
12.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個(gè)數(shù)。累加的和值放入x所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/P>
fun(int b[ ],int n,int *x)
{int k,r=0;
for(k=0;k
*x =r;
}
13.以下函數(shù)的功能是:把兩個(gè)整型指針變量所指的存儲(chǔ)單元中的內(nèi)容進(jìn)行交換。請(qǐng)?zhí)羁铡?/P>
exchange(int *x,int *y)
{int t;
t=*y; *y= *x ; *x= t ;
}
14.以下程序的輸出是 49 。
main()
{int a[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf(“%d\n”,(p+=3)[3]);
}
15.下面程序的輸出結(jié)果是 024 。
#define MAX 3
int a[MAX];
main()
{fun1();fun2(a);printf(“\n”);}
fun1()
{int k,t=0;
for(k=0;k
}
fun2(int b[])
{int k;
for(k=0;k
}
16.下面程序的輸出結(jié)果是 ABCDCD 。
char b[]=“ABCD”;
main()
{char *chp;
for(chp=b; *chp; chp+=2) printf(“%s”, chp);
printf(“\n”);
}
17.以下程序的功能是:從鍵盤(pán)上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串,請(qǐng)?zhí)羁铡?/P>
#include
main()
{char str[81],*sptr;
int i;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]==‘\n’) break;
}
str[i]= '\0' ;
sptr=str;
while(*sptr) putchar( *sptr++ );
}
18.fun1函數(shù)的調(diào)用語(yǔ)句為:fun1(&a,&b,&C);它將三個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c三個(gè)變量中,a中放最大數(shù)。請(qǐng)?zhí)羁铡?/P>
void fun2(int *x, int *y)
{int t;
t=*x; *x=*y; *y=t;
}
void fun1(int *pa,int *pb,int *pC)
{if(*pc>*pB) fun2( pc,pb );
if(*pa<*pC) fun2( pa,pb );
if(*pa<*pB) fun2( pa,pc );
}
19.以下函數(shù)用來(lái)在w數(shù)組中插入數(shù)x,w數(shù)組中的數(shù)已按由小到大的順序存放,n所指存儲(chǔ)單元中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),x插入后數(shù)組中的數(shù)仍有序。請(qǐng)?zhí)羁铡?/P>
void fun(char *w,char x,int *n)
{int i,p;
p=0;
w[*n]=x;
while(x>w[p]) p++ ;
for(i=*n;i>p;i--) w[i]= w[i-1] ;
w[p]=x;
++*n;
}
20.閱讀程序:
main()
{char str1[]=“how do you do”, str2[10];
char *p1=str1, *p2=str2;
scanf(“%s”, p2);
printf(“%s ”, p2);
printf(“%s\n”, p1);
}運(yùn)行上面的程序,輸入字符串HOW DO YOU DO,則程序的輸出結(jié)果是 HOW how do you do 。
編輯推薦:
考試吧考后首發(fā)2013年9月計(jì)算機(jī)等級(jí)考試試題及答案
2013年計(jì)算機(jī)等級(jí)考試備考精華資料匯總
2013年9月計(jì)算機(jī)等級(jí)考試真題及答案解析專(zhuān)題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |