大写字母I决定字高和竖宽比例,约8:1,H和N决定方形字母的宽度

题目

大写字母I决定字高和竖宽比例,约8:1,H和N决定方形字母的宽度,其长于宽的比例约()。

  • A、5:8
  • B、3:2
  • C、5:4
  • D、3:1
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

当决定派遣直升机救援时,船上人员需要在甲板或舱口盖上清理出足够大的地方,写上大写字母“______”。

A.S

B.SOS

C.H


正确答案:C

第2题:

阅读以下说明和JAVA 2代码,填入(n)处。

[说明]

以下JAVA程序设计了类CSet,使用同一个名称(set)的method来传入数据。仔细阅读[代码6-1)、[代码6-2]和[代码6-3]和相关注释,将程序补充完整。

[代码6-1]

import java.io.*;

class CSet

{

private int width;

private int height;

(1)

public void set(String color)

{

col=color; //(a)可输入长方形的颜色

}

public void set (iht w, int h)

{

width=w; //(b)可输入长方形的宽和高

height=h;

}

public void set (String color, int w, int h)

{

col=color; //(c)可输入长方形的颜色、宽和高

width=w;

height=h;

}

public void show ( )

{

System.out.println ("n\长方形的颜色为: "+col);

System.out.println ("n\长方形宽为: "+width+" 长方形高为: "+height");

}

}

[代码6-2]

public class hw8_3

{

public static void main (String args[]) throws IOException

{

intw, h; //声明宽、长变量,并给予赋值

String color, k;

CSet rect1;

rect1=new CSet ( );

System.out.print ("\n请输入颜色:: ");

color=input ( );

System.out.print ("请输入宽度:: ");

k=input ( );

w=Integer.parseInt (k);

System.out.print ("请输入高度:: ");

k=input( );

h=Integer.parseInt (k);

(2)//设置长方形的颜色

(3)//设置长方形的宽、高

rectl.show ( );

(4)//设置长方形的颜色和宽、高

rectl.show ( );

}

[代码6-3]

public static String input( ) throws IOException//输入函数

{

String str;

BufferedReader buf;

(5)

str=buf.readLine ( )

return str;

}

}


正确答案:(1)pfivate String col; (2)rectl.set(color); (3)rectl.set(wh); (4)rectl.set(colorwh); (5)buf=new BufferedReader(new InputStreamReader(System.in));
(1)pfivate String col; (2)rectl.set(color); (3)rectl.set(w,h); (4)rectl.set(color,w,h); (5)buf=new BufferedReader(new InputStreamReader(System.in)); 解析:程序中定义了类CSet,使用同一个名称(set)的method来传入数据。本题需要考生仔细阅读代码,因为代码中有的变量是在后来出现的,而前边又没有定义,那么肯定需要在空缺处定义。另外,有些语句逻辑上没有先后关系,但填空时需要按顺序填写,因为有注释区分。本题并不难,但代码长。设计此题的目的希望考生又较强的阅读代码能力,因为只有读完了全部代码,才可以明白前面的空缺应该填写什么。

第3题:

以下程序的功能是输入任意整数给 n 后,输出 n 行由大写字母 A 开始构成的三角形字符阵列图形。例如,输入整数 5 时 ( 注意 : n 不得大于 10) ,程序运行结果如下 :

A B C D E

F G H I

J K L

M N

O

请填空完成该程序。

main()

{ int i,j,n; char ch='A';

scanf(" % d",&n);

if(n<11)

{ for(i=1;i<=n;i++)

{ for(j=1;j<=n-i+1;j++)

{ printf(" % 2c",ch);

【 1 7 】 ;

}

【 1 8 】 ;

}

}

else printf("n is too large!\n")

printf("\n");

}


正确答案:
(15) 【 17 】 ch++
        【 18 】 printf( “ \n ” );
解析 : ch 自身加 1, 指向下一个字母 ( 以 ASCII 的顺序 ) 。此程序语句的作用是换行。

第4题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【程序2.1说明】

求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。

【程序2.1】

void main()

{

int i, j,n,s;

for(i=100;i<=999;i++)

{

n=i;

j=n/11;

s=0;

while((1))

{

(2)

n/=10;

}

if((3))

printf("%d\t",i);

}

}

【程序2.2说明】

本程序输入一字符串,将其中的大写字母改变成小写字母。

【程序2.2】

void main()

{

int i=0;

char s[120];

scanf("%s",s);

while((4))

{

if((5))

s[i]=s[i]- 'A'+'a';

i++;

}

printf("%s\n",s);

}


正确答案:(1)n (2)s=s+(n%10)*(n%10); (3)j==s (4)s[i] (5)s[i]>='A'&&s[i]='Z'
(1)n (2)s=s+(n%10)*(n%10); (3)j==s (4)s[i] (5)s[i]>='A'&&s[i]='Z' 解析:本题考查C语言中一些运算的实现。
在程序2.1中要求求出满足如下条件的所有三位数:它除以11得的商等于它各位数字的平方和。要想求出所有结果,我们应该对每个三位数进行计算来判断它是否符合题目中的要求,只有在除以11的商等于各位数字的平方和时,才是我们要求的数。
有了上述分析后,我们再来看程序2.1的代码,代码中首先声明了几个临时变量 i,j,n,s。接下来是一个循环,其目的是对从100到999的所有三位数来进行运算。再接下来的代码是将当前的这个三位数存放在变量n中,将除以11得到的商存放在i中。
第(1)空所在的位置是循环的判断条件,根据我们上面的分析和整个程序代码来看,这个循环应该是用来计算三位数中各位数字的平方和用的,再看循环中语句n/=10,其作用是将n的值除以10,因为n是整型变量,保存数据时是直接去除小数点后面的数而只保留前面的整数部分,这个操作其本质是对数字降位,去除最低位(个位)。在对其进行此操作前应该对数字中的最低位进行求平方计算,这也应该是第(2)空的任务,要求个位数的方法是n%10,因此,第(2)空答案应该是“s=s+(n%10)*(n%10)”。第(1)空用来判断数n在变化后是否还有值,答案为n。
第(3)空所在的位置是条件选择语句的条件,如果此条件成立,就输出变量i的值, i中存放的是当前参与计算的三位数,只有满足除以11得的商等于它各位数字的平方和的三位数才能被输出,那么条件选择语句中的条件应该是判断除以11得的商是否等于它各位数字的平方和。因此,第(3)空的答案为i==s。
在程序2.2中要求将输入的一字符串中的大写字母改变成小写字母,那么我们首先要了解C语言中大小写字母的转换规则。在C语言中字母的运算其实是字母对应的 ASCII码码值的运算,其中小写字母a对应的ASCII码值为97,a后面的小写字母的ASCII码值依次增加1,而大写字母A的ASCII码值为65,A后面的大写ASCII码值也依次增加。这样,我们就知道了小写字母比对应的大写字母的ASCII码值大32,在将小写字母转化为大写字母时,我们只要相应地将小写字母的ASCII码值减去32或加上32的相反数即可。
下面,我们来看程序2.2的代码,在代码中,声明了一个长度为120的字符型数组 S存放输入的字符串,下面有一个循环语句,第(4)空是循环语句的循环条件,结合整个程序,我们可以知道,循环语句要实现字符串中大写字母改变成小写字母的功能,所以循环的条件应该是判断在操作时是否取到了字符,而字符是存放在数组中的,因此,此空答案应该是“s[i]”。第(5)空是一个条件选择语句的条件,如果条件成立就执行将大写字母改变成小写字母操作,因此,是判断取到的字符是否为大写字母,所以此空答案为s[i]>='A'&&s[i]='Z'。

第5题:

下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母2改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat中的字符串,并把结果输出到文件out36.dat中。

例如:s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。

注意;部分源程序已给出。

请勿改动主函数脚main()和输入输出函数readwriteDAT()的内容。

试题程序:

include<stdio.h>

include<string.h>

include<conio.h>

include<ctype.h>

define N 81

void readwriteDAT();

void chg(char *s)

{

}

main()

{

char a[N];

clrscr();

printf("Enter a string:");

gets(a);

printf("The original string is :");

puts(a);

chg(a);

printf("The string after modified :");

puts(a);

readwriteDAT();

}

void readwriteDAT()

{

int i;

char a[N];

FILE *rf,*wf;

rf=fopen("in36.dat","r");

wf=fopen("out36.dat","w");

for(i=0;i<10;i++)

{

fgets(a,81,rf);

chg(a);

fprintf(wf,"%s",a);

}

fclose(rf);

fclose(wf);

}


正确答案:void chg(char *s) { while(*s) if(*s=='z'||*s=='Z') /*字母z改成字母a 字母Z改成字母A*/ { *s-=25; s++; /*取下一个字母*/ } else if(*s>'a'&& *s='y') /*把小写字母改成该字母的下一个字母*/ { *s+=1; s++; /*取下一个字母*/ } else if(*s>='A'&& *s='Y') /*~把大写字母改成字母的下一个字母*/ { *s+=1; s++; /*取下一个字母*/ } else s++; /*取下一个字母*/ }
void chg(char *s) { while(*s) if(*s=='z'||*s=='Z') /*字母z改成字母a, 字母Z改成字母A*/ { *s-=25; s++; /*取下一个字母*/ } else if(*s>'a'&& *s='y') /*把小写字母改成该字母的下一个字母*/ { *s+=1; s++; /*取下一个字母*/ } else if(*s>='A'&& *s='Y') /*~把大写字母改成字母的下一个字母*/ { *s+=1; s++; /*取下一个字母*/ } else s++; /*取下一个字母*/ } 解析:本题考查的知识点如下:
(1) 英文字母对应的ASCII码的排列规律。
(2) 指针的操作。
(3) 选择结构中多个条件的布尔运算。
在ASCH码中,大、小写字母的ASCII码是连贯的,a~z对应97~122,A~Z对应65~90。z的ASCII码减去25即得到a的ASCII码,对Z同样适合。所以我们要对字符串中的字符依次进行判断,若是大(小)写字母,则按照ASCII码的规律和题意要求对字符进行转换。在这里,使用指针完成对字符的依次访问,每次将指针的地址加1直至指针为空即可。在选择结构的多个条件中,若需同时满足,则用“与”运算,否则,用“或”运算。

第6题:

感染人的禽流感病毒亚型主要为

A、H5N1、H9N2和H7N7

B、H5N1、H9N2和H3N8

C、H2N8、H9N2和H7N7

D、H5N1、H1N1和H2N2

E、H5N1、H2N2和H7N7


参考答案:A

第7题:

函数ReadDat()的功能是实现从文件IN73.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CovertCharD(),该函数的功能是:以行为单位把字符串中的所有小写字母改成该字母的上一个字母,如果是字母a,则改成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数 WriteDat()把结果xx输出到文件OUT73.DAT中。

例如:原文Adb Bcdza

abck LLhj

结果Aca Bbcyz,

zabj LLgi

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序已给出。

请勿改动主函数main()、读函数ReadDat()和写函数Wiltedat()的内容。

试题程序:

include<stdio. h>

include<string. h>

include<conio. h>

char xx[50] [80];

int maxline=0;

int ReadDat (void);

void WriteDat (void);

void CovertCharD ( )

{

}

void main ( )

{

clrscr ( );

if (ReadDat ( ) )

{

printf ( "数据文件IN73 .DAT 不能打开\n\007");

return;

}

CovertCharD ( );

WriteDat ();

}

int ReadDat ()

{

FILE *fp;

int i=0;

char *p;

if ( ( fp= fopen ( "IN73. DAT", "r" ) ) = =NULL) return

while (fgets (xx [i], 80, fp) !=NULL)

{

p=strchr (xx [i] , '\n' );

if(p)

*p=0;

i++;

}

maxline=i;

fclose (fp);

return 0;

}

void WriteDat (void)

{

FILE *fp;

int i;

clrscr ( );

fp=fopen("OUT73 .DAT", "w");

for (i=0; i<maxline; i++)

{

printf ( "%s\n" ,xx [i] );

fprintf (fp, "%s\n" ,xx[i] );

}

fclose (fp);

}


正确答案:void CovertCharD ( ) { int i; char *pf; for ( i=0; imaxline; i++ ) { pf=xx [i]; /*指针pf指向各行的首地址*/ while (*pf) if (*pf=='a') /*如果是字母a则改成字母z*/ { *pf='z'; pf++; /*指向下一个字符*/ } else if(*pf>='b'&& *pf='z') /*小写字母'b'到'z'改成该字母的上一个字母*/ { *pf-=l; Pf++; /*指向下一个字符*/ } else pf++; /*如果不满足条件则不变字符指向下一个字符*/ } }
void CovertCharD ( ) { int i; char *pf; for ( i=0; imaxline; i++ ) { pf=xx [i]; /*指针pf指向各行的首地址*/ while (*pf) if (*pf=='a') /*如果是字母a,则改成字母z*/ { *pf='z'; pf++; /*指向下一个字符*/ } else if(*pf>='b'&& *pf='z') /*小写字母'b'到'z'改成该字母的上一个字母*/ { *pf-=l; Pf++; /*指向下一个字符*/ } else pf++; /*如果不满足条件,则不变字符,指向下一个字符*/ } } 解析:本题考查的知识点如下:
(1)字符串的计算。
(2)循环结构的使用。
(3)使用指针实现对数组的访问。
本题中,将字符存放在二维数组中,以行为字符处理的基本单位,可以定义一个指针,指向每一行字符。初始时,指针指向每一行的第一个元素,增加指针地址就可以实现对一行数据的完全访问,要将所有小写字母改成它的前一个字母,小写字母的ASCⅡ码是连续的,可直接将其ASCⅡ码减1,则得要求的字符。注意:字母a要单独处理,其他字符保持不变。

第8题:

以下程序统计从终端输入的字符中大写字母的个数 ,num[0] 中统计字母 A 的个数 ,num[1] 中统计字母的个数 , 其它依次类推 . 用 # 号结束输入 , 请填空 .

#include <stdio.h>

#include <ctype.h>

main()

{ int num[26]={0},i; char c;

while(( _[16]_______ )!='#')

if(isupper(c)) num[c- ' A ' ]+= _[17]_______ ;

for(i=0;i<26;i++)

Printf("%c:%d\n",i+'A',num[i]);

}


正确答案:

第9题:

下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat中的字符串,并把结果输出到文件out36.dat中。

例如:s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。

注意:部分源程序已给出。

请勿改动主函数main()和输入输出函数readwriteDAT()的内容。

试题程序:

include<stdio. h>

include<string. h>

include<conio, h>

include<ctype, h>

define N 81

void readwriteDAT ();

void chg(char as)

{

}

main ( )

{

char a [N];

clrscr ();

printf("Enter a string:");

gets (a);

printf ("The original string is :");

puts (a);

chg (a);

printf("The string after modified :");

puts (a);

readwriteDAT ();

}

void readwriteDAT ()

{

int i;

char a [N];

FILE *rf, *wf;

r f=fopen ("in36. dat", "r" );

wf=fopen ("out36. dat", "w" );

for (i=0;i<10; i++)

{

fgets (a, 81, rf);

chg (a);

fprintf (wf, "%s", a);

}

fclose (rf);

fclose (wf);

}


正确答案:void chg(char *s) { while (*s) if(*s=='z' | |*s=='z') /*字母z改成字母a字母z改成字母A*/ { *s-=25; s++; /*取下一个字母* / } else if(*s>='a'&& *s='y') /*把小写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else if (*s>='A'&& *s='Y') /*把大写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else s++; /*取下一个字母* / }
void chg(char *s) { while (*s) if(*s=='z' | |*s=='z') /*字母z改成字母a,字母z改成字母A*/ { *s-=25; s++; /*取下一个字母* / } else if(*s>='a'&& *s='y') /*把小写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else if (*s>='A'&& *s='Y') /*把大写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else s++; /*取下一个字母* / } 解析:本题考查的知识点如下:
(1)英文字母对应的ASCII码的排列规律。
(2)指针的操作。
(3)选择结构中多个条件的布尔运算。
在ASCII码中,大、小写字母的ASCII码是连贯的,a~z对应97~122,A~Z对应65~90。z的ASCII码减去25即得到a的ASCII码,对Z同样适合。所以我们要对字符串中的字符依次进行判断,若是大(小)写字母,则按照ASCII码的规律和题意要求对字符进行转换。在这里,使用指针完成对字符的依次访问,每次将指针的地址加1直至指针为空即可。在选择结构的多个条件中,若需同时满足,则用“与”运算,否则,用“或”运算。

第10题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明1]

本程序输入一字符串,并将其中的大写字母变成小写字母。

[C函数1]

include<stdio.h>

void main()

{ int i=0;

char s[120];

printf("Enter a string.\n");

scanf("%s",s);

while( (1) ){

if( (2) )

s[i]=s[i]-'A'+'a';

i++;

}

printf("%s\n",S);

}

[说明2]

本程序用二分法,在已按字母次序从小到大排序的字符数组list[len]中,查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。

[C函数2]

int search(char list[],char c,int len)

( intlow=0,high=len-1,k;

while( (3) );

k=(10w+high)/2;

if( (4) ) return k;

else if( (5) )high=k-1;

else low=k+1;

return -1;

}


正确答案:(1)  s[i] (2) 'A'=s[i]&&s[i]= 'Z' (3) low=high (4) list[k]==c (5) list[k]>c或clist[k]
(1)  s[i] (2) 'A'=s[i]&&s[i]= 'Z' (3) low=high (4) list[k]==c (5) list[k]>c或clist[k] 解析:函数1的功能是将读入的字符串中大写字母变成小写字母,因此对读入的每个字符首先判断该字符是否为'\0',所以(1)填“s[i]”;然后判断该字符是否为大写字母,(2)填“'A'=s[i]&&s[i]='Z'”。
函数2根据二分查找的特点,函数search中while循环的过程是将(low+high)/2对应的元素与给定的字符C比较,找到则返回,因此(4)填“list[k]==c”;否则继续。当list[k]>c时,high=k-1;当list[k]c时,low=k+1。所以(5)填“list[k]>c”或“clist[k]”。直到low>high时循环终止,所以(3)应填“low=high”。

更多相关问题